Что это такое?
TanStack Router — это современный роутер для веба, построенный вокруг сквозной типобезопасности: маршруты, параметры, загрузчики (loaders) и search-параметры всё проверяются типами. В этом же репозитории живёт TanStack Start — фулстек-фреймворк, построенный поверх роутера.
Это библиотека-роутер или полноценный фреймворк?
И то, и другое, в одном репозитории: Router — это клиентская библиотека маршрутизации, а Start — необязательный фулстек-слой поверх неё, который добавляет SSR всего документа, стриминг, серверные функции и готовые к деплою сборки.
Как добавить его в свой проект?
Установите пакет для вашего фреймворка (npm install @tanstack/react-router) и следуйте разделу quick start в документации Router; у Start есть собственный трек документации. Сам репозиторий — это монорепозиторий на pnpm + nx.
Он работает только с React?
React — основной целевой фреймворк: проект описывается как роутер «для веба (React и не только)», а кодовая база целиком написана на TypeScript. Актуальный список поддерживаемых фреймворков смотрите в документации.
Он готов к продакшену или всё ещё экспериментальный?
Он позиционируется как решение для продакшена, а не как эксперимент: Start поставляет готовые к деплою сборки, а CI репозитория прогоняет eslint, юнит- и e2e-тесты, проверку типов и сборку на каждое изменение.
Можно ли сделать с ним обычное SPA-приложение, или серверная часть обязательна?
Роутер изначально клиентский, поэтому классическое одностраничное приложение — базовый сценарий, сервер не нужен. TanStack Start подключается по желанию: добавляйте его, когда нужны SSR всего документа, стриминг и серверные функции на той же модели маршрутизации.
Он сам занимается загрузкой данных и кешированием?
Да — кеширование, предзагрузка и инвалидация встроены в роутер, а загрузчики являются типизированной частью маршрута, так что навигация, управляемая данными, работает без подключения дополнительных библиотек.
Как он работает с search-параметрами в URL?
Они описываются схемой: вы объявляете схему валидации для каждого маршрута, и параметры остаются полностью типобезопасными от начала до конца, вместо того чтобы быть «сырыми» строками, распарсенными из URL.
Можно ли делать вложенные макеты и обработку ошибок на уровне маршрута?
Да — вложенные макеты, переходы и error boundaries — это полноценные возможности маршрутизации, встроенные прямо в роутер.
Which topics is it in?
fullstack, typesafe, routing, rpc, router, full-stack, ssr, devtools, state-management, caching, search, web-development