- 📋 Общее описание
- 📦 Технологический стек
- ⚙️ Архитектура приложения
- 🧪 Тестирование компонентов
- ✅ Запуск проекта
Проект использует менеджер пакетов yarn.->
Реализована форма для регистрации, которая принимает и валидирует следующие данные:
- Email 📧
- Пароль 🔒
- ФИО 👤
- Возраст 🎂
- Пол ⚧️
Форма также включает состояние кнопки (disabled во время отправки) и таблицу, которая реализует infinite loader для отображения данных.
- Конфигурация проекта: Vite + React + TypeScript
- Менеджер пакетов: Yarn
- Сервер данных: json-server
Приложение не использует state-manager (например, Redux или MobX). Вместо этого, для управления состоянием данных применяется TanStack Query и его хук useInfiniteQuery. Это решение было выбрано по следующим причинам:
- Упрощение кода: TanStack Query позволяет писать меньше кода, связанного с управлением состоянием.
- Автоматическое кэширование и обновление данных: TanStack Query автоматически кэширует данные и обновляет их при необходимости, это упрощает работу с API.
- Поддержка infinite scrolling: Хук
useInfiniteQueryподходит для реализации бесконечной прокрутки, что позволяет загружать данные по мере необходимости, а так же обновлять только те данные что нужны в конкретный момент.
В качестве сервера json-server. Используется роут /posts для обработки всех запросов, связанных с данными.
- Форма отправляет данные на сервер, создавая новую запись.
- Таблица при прокрутке загружает новые записи, делая запрос к API
/posts, пока данные не закончатся. Для отслеживания видимости элементов и инициирования запросов используется библиотека react-intersection-observer.
- Пропишите
yarn testв директории с проектом
Тесты для компонента ValidationForm проверяют, что все данные корректно отправляются в функцию createPost. Вот основные моменты:
- Проверяется, что при заполнении всех полей формы и нажатии кнопки "Отправить" вызывается функция
createPostс правильными данными.
Тесты для компонента DataTable проверяют:
- Корректный рендеринг данных после успешного запроса.
- Обработку ошибок при неудачном запросе.
- Убедитесь, что установлен
Node.js LTS - Скачайте проект:
https://github.com/yermaka-a/validation_form-table - Для установки зависимостей:
yarn install - Запустите сервер:
npx json-server ./db/db.json - Запустите приложение в отдельном терминале
yarn dev