SPA-приложение для просмотра и поиска товаров с поддержкой:
- серверной пагинации
- серверной сортировки
- поиска
- оптимистичного UX при загрузке данных
Данные загружаются через API и отображаются в табличном виде
- React — UI
- TypeScript — типизация
- Vite — сборка
- React Router — маршрутизация
- TanStack Query — управление серверным состоянием
- Axios — HTTP-запросы -SCSS + CSS Modules — стили
Выполняется через API и обновляет таблицу
Таблица поддерживает серверную пагинацию. Количество элементов на странице фиксировано. Переключение страниц не вызывает мерцания благодаря keepPreviousData
Состояние сортировки цикличное: без сортировки → asc → desc → без сортировки
При первой загрузке отображается skeleton-таблица
Во время запроса отображается progress-bar
Структура проекта построена по принципам feature-based архитектуры
src
├── app
│ └── router
│
├── pages
│ └── auth
│ └── products
│
├── features
│ ├── search
│ └── add-product
│
├── entities
│ └── product
│
├── shared
│ ├── api
│ ├── config
│ ├── ui
│ └── assets
Для управления серверным состоянием используется TanStack Query
- кэширование запросов
- автоматическая синхронизация данных
- контроль загрузки
- минимизация лишних запросов
Установка зависимостей
pnpm install
Запуск dev-сервера
pnpm start
Сборка проекта
pnpm build