用途:在采用 TanStack Router 的项目中自动生成路由树,并通过 PostToolUse 钩子检查、约束路由写法,减少不规范导航与类型缺失。
主要能力:禁止 react-router-dom 导入;禁止 window.location 导航(阻断)与读取(警告);对 window.location.reload() 给出警告并建议 router.invalidate();禁止路由钩子中的 strict: false;禁止缺少 { from } 的无类型 useParams()/useSearch()/useLoaderData()/useRouteContext();禁止 URLSearchParams 并建议 nuqs;对路由文件导出组件(破坏代码分割)给出警告;路由文件中使用 useSearch 时要求 validateSearch;当 Query 预取的 loader 数据通过 useLoaderData 消费而非 useQuery/useSuspenseQuery 时警告;router 使用 queryClient context 但缺少 defaultPreloadStaleTime: 0 或 createRootRouteWithContext 时警告;路由文件变更时自动重新生成路由树。
使用方式:作为技能安装后由钩子自动执行;路由目录默认匹配 /routes/,如项目使用 /pages/ 或 /app/routes/ 等约定,需修改钩子脚本中的 grep 模式。安装、配置与验证见 SETUP.md。
TanStack Router 与 Query 配合:loader 负责在导航意图后尽早开始获取;TanStack Query 负责缓存、重新获取、失效与垃圾回收;组件通过 useQuery() 或 useSuspenseQuery() 读取以保持观察者。不要全局强制 suspense,按字段或页面选择:页面关键阻塞数据用 useSuspenseQuery(),延迟或次要数据用 useQuery()。避免用 Route.useLoaderData() 读取 Query 加载的数据,否则会绕过 Query 观察者,影响聚焦重取、失效重取与缓存保留。
类型安全搜索参数可用 nuqs,例如 useQueryState 配合 parseAsInteger、parseAsString。
限制:资料未提供具体安装命令、版本要求、性能数据与收费信息。