1. Экосистема TanStack
Как всё начиналось: React Query
Заголовок раздела «Как всё начиналось: React Query»В 2019 году Таннер Линсли (Tanner Linsley) столкнулся с проблемой, знакомой каждому React-разработчику: управление серверным состоянием с помощью Redux или MobX было сложным, многословным и не решало реальные задачи — кэширование, фоновые обновления, дедупликацию запросов.
Так родился React Query — библиотека, которая изменила подход к работе с серверными данными в React. Первый релиз вышел в конце 2019 года и быстро набрал популярность благодаря простому API и мощным возможностям.
Эволюция: от React Query к TanStack Query
Заголовок раздела «Эволюция: от React Query к TanStack Query»С ростом популярности стало ясно, что подход работает не только для React. В 2022 году произошёл ребрендинг: React Query v4 стал TanStack Query v4, и библиотека получила официальные адаптеры для Vue, Svelte и Solid.
Параллельно развивались другие инструменты:
- React Table → TanStack Table v8 (полный переписанный с нуля)
- React Virtual → TanStack Virtual v3
- Новые проекты: TanStack Router, TanStack Form, TanStack Start
TanStack Query v5: Современный стандарт
Заголовок раздела «TanStack Query v5: Современный стандарт»В 2023 году вышел TanStack Query v5 — самый значительный релиз:
cacheTimeпереименован вgcTime(garbage collection time)- Упрощён API мутаций
- Первоклассная поддержка Suspense через
useSuspenseQuery - Улучшенные DevTools
- Оптимизированный бандл (меньше размер)
Headless-философия
Заголовок раздела «Headless-философия»Главная идея TanStack — разделение логики и представления. Библиотеки предоставляют:
- Состояние и его обновления
- Вычисленные значения (отсортированные строки, текущая страница)
- Обработчики событий
Но не предоставляют:
- HTML-разметку
- CSS-стили
- Конкретные UI-компоненты
Преимущества headless-подхода
Заголовок раздела «Преимущества headless-подхода»- Полная свобода дизайна — используйте любую UI-библиотеку или пишите с нуля
- Нет конфликтов стилей — никаких
!importantдля переопределения - Меньший бандл — только логика без CSS
- Универсальность — один движок для веба, мобилки, десктопа
- Тестируемость — логика отделена от рендеринга