用途:这是 TanStack Router 的入口技能,帮助在多个子技能中选择一个主要方向,避免一次性加载全部目录。TanStack Router 是面向 React 和 Solid 的类型安全路由,内置 SWR 缓存、JSON 优先的搜索参数、基于文件的路由生成和端到端类型推断;核心与框架无关,React 与 Solid 绑定在其之上。
主要能力与子技能:搜索参数(校验、读写、转换)、路径参数(动态段、splat、可选参数)、导航(Link、useNavigate、预加载、阻塞)、数据加载(loader、SWR 缓存、context、延迟数据)、鉴权与守卫(beforeLoad 重定向、RBAC)、代码分割、404 与错误边界、类型安全(推断、Register、from 收窄)、SSR(流式/非流式、水合、head 管理)。
必要用法:用 createRootRoute 定义根路由,用 createFileRoute 定义文件路由,用 createRouter 传入 routeTree 创建实例,并通过 declare module 注册 router 类型以获得 Link/useNavigate 自动补全,最后用 RouterProvider 挂载。路由重构时应重命名或移动路由文件,不要手改生成的 createFileRoute 路径字符串,需用插件或 CLI 重新生成 routeTree.gen.ts,并更新链接、重定向、from 收窄、参数与测试,运行类型测试和生产构建。
限制与注意:类型完全推断,不要强制转换或标注推断值;它是客户端优先,loader 默认在客户端运行,不同于 Remix/Next.js;不要与 Next.js 或 React Router 的 API 混淆。本技能针对 @tanstack/router-core v1.171.15,splat 路由使用 $,* 兼容别名将在 v2 移除。