Доки по разработке
This project is maintained by teniryte
Этот раздел фиксирует актуальные практики для TanStack Router v1 (latest) и служит “источником истины”, если в старых примерах есть расхождения.
createRootRoute/createRootRouteWithContext, createRoute, createFileRoute, createLazyFileRoute, createLazyRoute.Link, Navigate, useNavigate, router.navigate.preload="intent|render|viewport", router.preloadRoute(...), router.loadRouteChunk(route).loader, beforeLoad, loaderDeps, shouldReload, gcTime, staleTime, defer + Await.await router.load(), затем router.dehydrate(), на клиенте router.hydrate(...).route.tsx (critical config) + route.lazy.tsx (component/pending/error/notFound).@tanstack/router-plugin/vite и опцию autoCodeSplitting: true, если хотите автоматическое разделение critical/non-critical кода.__root.tsx не делят на lazy, он всегда участвует в рендере.usePrefetchRoute, router.cancelPreload, router.deferCancel, router.loadRoute(...).router.subscribe('eventName', ...).createFileRoute(...).createRoute(...).Route.useContext() (в примерах используйте Route.useRouteContext()).const router = createRouter({
routeTree,
defaultPreload: 'intent',
defaultPreloadDelay: 50,
defaultPreloadStaleTime: 30_000,
})
signal из loader в каждый HTTP-запрос (отмена при быстром переходе).invalidateQueries) и при необходимости router.invalidate().useBlocker, а не beforeLoad.intent/viewport), потом оптимизируйте чанки.@tanstack/react-router v1 latest.preload/preloadRoute.load -> dehydrate -> hydrate.