mcpField
T
tanstack-router-best-practices

tanstack-router-best-practices

github.com/deckardger开发2297.1k 次安装7 周前更新
代码仓库

关于 tanstack-router-best-practices

面向 React 应用的 TanStack Router 实践指南,按优先级整理路由、类型安全、数据加载、导航等规则,并提供规则示例与适用背景。

主要功能

  1. 01类型安全路由指南
  2. 02路由组织模式
  3. 03Loader 与数据获取规则
  4. 04搜索参数校验
  5. 05导航与错误处理
  6. 06代码拆分与预加载

适用场景

  1. 01搭建路由与布局
  2. 02添加类型安全的 URL 状态
  3. 03使用 TanStack Query 配置 Loader
  4. 04重构导航与路由加载

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/deckardger/tanstack-agent-skills --skill tanstack-router-best-practices

安装后在 Claude Code 中输入/tanstack-router-best-practices确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

rules/
ctx-before-load.md
ctx-dependency-injection.md
ctx-root-context.md
err-not-found.md
load-deferred-data.md
load-ensure-query-data.md
load-error-handling.md
load-loader-deps.md
load-parallel.md
load-use-loaders.md
nav-active-states.md
nav-link-component.md
nav-relative-paths.md
nav-route-masks.md
nav-use-navigate.md
org-file-based-routing.md
org-index-routes.md
org-pathless-layouts.md
org-route-tree-structure.md
org-virtual-routes.md
preload-intent.md
preload-manual.md
preload-stale-time.md
router-default-options.md
search-custom-serializer.md
search-defaults.md
search-middleware.md
search-type-inheritance.md
search-validation.md
split-auto-splitting.md

详细介绍

TanStack Router 最佳实践

在 React 应用中实现 TanStack Router 模式的综合指南。这些规则有助于优化类型安全、数据加载、导航和代码组织。

适用场景

  • 设置应用路由
  • 创建新路由和布局
  • 实现搜索参数处理
  • 配置数据加载器
  • 设置代码拆分
  • 与 TanStack Query 集成
  • 重构导航模式

按优先级划分的规则类别

优先级类别规则影响
CRITICAL类型安全4 条规则防止运行时错误并支持重构
CRITICAL路由组织5 条规则确保路由结构易于维护
HIGHRouter 配置1 条规则全局路由默认设置
HIGH数据加载6 条规则优化数据获取和缓存
HIGH搜索参数5 条规则支持类型安全的 URL 状态
HIGH错误处理1 条规则妥善处理 404 和错误
MEDIUM导航5 条规则改善用户体验和无障碍性
MEDIUM代码拆分3 条规则减小打包体积
MEDIUM预加载3 条规则提升感知性能
LOW路由上下文3 条规则支持依赖注入

快速参考

类型安全(前缀:ts-)
  • ts-register-router — 注册路由器类型以实现全局推断
  • ts-use-from-param — 使用 from 参数进行类型收窄
  • ts-route-context-typing — 使用 createRootRouteWithContext 为路由上下文添加类型
  • ts-query-options-loader — 在加载器中使用 queryOptions 进行类型推断
Router 配置(前缀:router-)
  • router-default-options — 配置路由器默认选项(scrollRestoration、defaultErrorComponent 等)
路由组织(前缀:org-)
  • org-file-based-routing — 优先采用文件路由,以遵循约定
  • org-route-tree-structure — 遵循分层路由树模式
  • org-pathless-layouts — 使用无路径路由实现共享布局
  • org-index-routes — 了解索引路由与布局路由的区别
  • org-virtual-routes — 了解虚拟文件路由
数据加载(前缀:load-)
  • load-use-loaders — 使用路由加载器获取数据
  • load-loader-deps — 定义 loaderDeps 以控制缓存
  • load-ensure-query-data — 将 ensureQueryData 与 TanStack Query 搭配使用
  • load-deferred-data — 拆分关键数据和非关键数据
  • load-error-handling — 妥善处理加载器错误
  • load-parallel — 利用并行路由加载
搜索参数(前缀:search-)
  • search-validation — 始终验证搜索参数
  • search-type-inheritance — 利用父级搜索参数类型
  • search-middleware — 使用搜索参数中间件
  • search-defaults — 提供合理的默认值
  • search-custom-serializer — 配置自定义搜索参数序列化器
错误处理(前缀:err-)
  • err-not-found — 妥善处理未找到的路由
导航(前缀:nav-)
  • nav-link-component — 优先使用 Link 组件进行导航
  • nav-active-states — 配置链接的激活状态
  • nav-use-navigate — 使用 useNavigate 进行编程式导航
  • nav-relative-paths — 了解相对路径导航
  • nav-route-masks — 使用路由遮罩实现模态框 URL
代码拆分(前缀:split-)
  • split-lazy-routes — 使用 .lazy.tsx 进行代码拆分
  • split-critical-path — 将关键配置保留在主路由文件中
  • split-auto-splitting — 尽可能启用 autoCodeSplitting
预加载(前缀:preload-)
  • preload-intent — 启用基于意图的预加载
  • preload-stale-time — 配置预加载过期时间
  • preload-manual — 有策略地使用手动预加载
路由上下文(前缀:ctx-)
  • ctx-root-context — 在根路由定义上下文
  • ctx-before-load — 在 beforeLoad 中扩展上下文
  • ctx-dependency-injection — 使用上下文实现依赖注入

使用方法

rules/ 目录中的每个规则文件都包含:

  1. 说明 — 为什么这种模式很重要
  2. 错误示例 — 应避免的反模式
  3. 正确示例 — 推荐的实现方式
  4. 适用情境 — 何时应用或跳过此规则

完整参考

详细指南和代码示例请参阅 rules/ 目录中的各个规则文件。

评论

支持 Markdown