用途:TanStack Router(@tanstack/react-router@1.x)是面向 React 单页应用的类型安全路由方案。本资料以最佳实践形式,给出文件式路由、数据加载、搜索参数与导航等使用规则,帮助避免运行时错误并支持重构。
主要能力与规则:类型安全(关键)要求注册路由类型,通过 declare module '@tanstack/react-router' 声明 Register.router,使 Hook 获得全局类型推断;在 useSearch、useParams、useLoaderData 中使用 from 参数获取当前路由的精确类型。文件式路由(关键)由插件生成路由树,不手工维护,目录约定如 __root.tsx、index.tsx、posts.$postId.tsx、_auth.tsx 无路径布局、(settings) 路由组。搜索参数使用 validateSearch 配合任意 Standard Schema 库(如 Zod、Valibot、Yup、ArkType)直接传入 schema 校验。数据加载应在 loader(或 beforeLoad)中取数,不要在组件或 useEffect 中拉取,以启用预加载与并行请求。错误处理、导航、代码分割(.lazy.tsx)、预加载与路由上下文属于高到低优先级规则;Query 集成用 ensureQueryData 打通 TanStack Query。
使用方式:安装 npm install @tanstack/react-router @tanstack/react-router-devtools,开发依赖 npm install -D @tanstack/router-plugin,并在 Vite 配置中加入 tanstackRouter() 插件(需置于 react() 之前)。创建 router 后经 RouterProvider 挂载。若同时使用多个 TanStack 库,可安装 @tanstack/react-devtools,用 TanStackDevtools 统一面板并嵌入 *Panel 变体组件。
限制:需 React 18.0+、TypeScript 5.0+,Vite 为推荐但非强制;不注册类型会使 Hook 返回 unknown 联合类型;不要在组件中写重逻辑;资料未提供收费、价格与更多平台细节。