Перейти к содержимому

1. Экосистема TanStack

В 2019 году Таннер Линсли (Tanner Linsley) столкнулся с проблемой, знакомой каждому React-разработчику: управление серверным состоянием с помощью Redux или MobX было сложным, многословным и не решало реальные задачи — кэширование, фоновые обновления, дедупликацию запросов.

Так родился React Query — библиотека, которая изменила подход к работе с серверными данными в React. Первый релиз вышел в конце 2019 года и быстро набрал популярность благодаря простому API и мощным возможностям.

С ростом популярности стало ясно, что подход работает не только для React. В 2022 году произошёл ребрендинг: React Query v4 стал TanStack Query v4, и библиотека получила официальные адаптеры для Vue, Svelte и Solid.

Параллельно развивались другие инструменты:

  • React TableTanStack Table v8 (полный переписанный с нуля)
  • React VirtualTanStack Virtual v3
  • Новые проекты: TanStack Router, TanStack Form, TanStack Start

В 2023 году вышел TanStack Query v5 — самый значительный релиз:

  • cacheTime переименован в gcTime (garbage collection time)
  • Упрощён API мутаций
  • Первоклассная поддержка Suspense через useSuspenseQuery
  • Улучшенные DevTools
  • Оптимизированный бандл (меньше размер)

Главная идея TanStack — разделение логики и представления. Библиотеки предоставляют:

  • Состояние и его обновления
  • Вычисленные значения (отсортированные строки, текущая страница)
  • Обработчики событий

Но не предоставляют:

  • HTML-разметку
  • CSS-стили
  • Конкретные UI-компоненты
  1. Полная свобода дизайна — используйте любую UI-библиотеку или пишите с нуля
  2. Нет конфликтов стилей — никаких !important для переопределения
  3. Меньший бандл — только логика без CSS
  4. Универсальность — один движок для веба, мобилки, десктопа
  5. Тестируемость — логика отделена от рендеринга