4. TanStack Query
TanStack Query (ранее известный как React Query) — это мощная библиотека для управления асинхронным состоянием (запросами к API, кешированием, синхронизацией).
Почему не useEffect?
Заголовок раздела «Почему не useEffect?»Многие разработчики используют useEffect и useState для загрузки данных. Это приводит к проблемам:
- Отсутствие кеширования.
- Дублирование запросов.
- Сложность обработки состояний загрузки и ошибок.
- Проблемы с “протуханием” данных (stale data).
Жизненный цикл данных
Заголовок раздела «Жизненный цикл данных»graph TD Fetch[Запрос данных] --> Loading[Статус Loading] Loading --> Success[Статус Success + Кеширование] Success --> Stale[Данные устарели через X сек] Stale --> Refetch[Фоновое обновление] Loading --> Error[Статус Error + Retry]Основные возможности
Заголовок раздела «Основные возможности»- Caching: Данные сохраняются в памяти и возвращаются мгновенно при повторном запросе.
- Deduping: Если два компонента запрашивают одни и те же данные одновременно, выполнится только один запрос.
- Automatic Refetch: Данные обновляются при смене фокуса окна или восстановлении сети.
- Pagination & Infinite Scroll: Встроенная поддержка сложных сценариев загрузки.
Сравнение с клиентскими стейт-менеджерами
Заголовок раздела «Сравнение с клиентскими стейт-менеджерами»TanStack Query управляет серверным состоянием (то, что лежит в БД). Zustand или Redux лучше подходят для клиентского состояния (открыта ли модалка, фильтры поиска).