tanstack-router-best-practices by deckardger/tanstack-agent-skills
npx skills add https://github.com/deckardger/tanstack-agent-skills --skill tanstack-router-best-practices在 React 应用程序中实现 TanStack Router 模式的综合指南。这些规则优化了类型安全、数据加载、导航和代码组织。
| 优先级 | 类别 | 规则数量 | 影响 |
|---|---|---|---|
| 关键 | 类型安全 | 4 条规则 | 防止运行时错误并支持重构 |
| 关键 | 路由组织 | 5 条规则 | 确保可维护的路由结构 |
| 高 | 路由器配置 | 1 条规则 | 全局路由器默认设置 |
| 高 | 数据加载 | 6 条规则 | 优化数据获取和缓存 |
| 高 | 搜索参数 |
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
| 5 条规则 |
| 实现类型安全的 URL 状态 |
| 高 | 错误处理 | 1 条规则 | 优雅地处理 404 和错误 |
| 中 | 导航 | 5 条规则 | 改善用户体验和可访问性 |
| 中 | 代码分割 | 3 条规则 | 减少打包体积 |
| 中 | 预加载 | 3 条规则 | 提升感知性能 |
| 低 | 路由上下文 | 3 条规则 | 支持依赖注入 |
ts-)ts-register-router — 注册路由器类型以进行全局推断ts-use-from-param — 使用 from 参数进行类型收窄ts-route-context-typing — 使用 createRootRouteWithContext 为路由上下文添加类型ts-query-options-loader — 在加载器中使用 queryOptions 进行类型推断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 — 与 TanStack Query 结合使用 ensureQueryDataload-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 — 使用路由掩码处理模态框 URLsplit-)split-lazy-routes — 使用 .lazy.tsx 进行代码分割split-critical-path — 将关键配置保留在主路由文件中split-auto-splitting — 尽可能启用 autoCodeSplittingpreload-)preload-intent — 启用基于意图的预加载preload-stale-time — 配置预加载过期时间preload-manual — 策略性地使用手动预加载ctx-)ctx-root-context — 在根路由定义上下文ctx-before-load — 在 beforeLoad 中扩展上下文ctx-dependency-injection — 使用上下文进行依赖注入rules/ 目录中的每个规则文件包含:
有关详细指导和代码示例,请参阅 rules/ 目录中的各个规则文件。
每周安装量
854
代码仓库
GitHub 星标数
82
首次出现
2026年1月20日
安全审计
安装于
opencode749
codex711
gemini-cli689
github-copilot683
cursor627
amp623
Comprehensive guidelines for implementing TanStack Router patterns in React applications. These rules optimize type safety, data loading, navigation, and code organization.
| Priority | Category | Rules | Impact |
|---|---|---|---|
| CRITICAL | Type Safety | 4 rules | Prevents runtime errors and enables refactoring |
| CRITICAL | Route Organization | 5 rules | Ensures maintainable route structure |
| HIGH | Router Config | 1 rule | Global router defaults |
| HIGH | Data Loading | 6 rules | Optimizes data fetching and caching |
| HIGH | Search Params | 5 rules | Enables type-safe URL state |
| HIGH | Error Handling | 1 rule | Handles 404 and errors gracefully |
| MEDIUM | Navigation | 5 rules | Improves UX and accessibility |
| MEDIUM | Code Splitting | 3 rules | Reduces bundle size |
| MEDIUM | Preloading | 3 rules | Improves perceived performance |
| LOW | Route Context | 3 rules | Enables dependency injection |
ts-)ts-register-router — Register router type for global inferencets-use-from-param — Use from parameter for type narrowingts-route-context-typing — Type route context with createRootRouteWithContextts-query-options-loader — Use queryOptions in loaders for type inferencerouter-)router-default-options — Configure router defaults (scrollRestoration, defaultErrorComponent, etc.)org-)org-file-based-routing — Prefer file-based routing for conventionsorg-route-tree-structure — Follow hierarchical route tree patternsorg-pathless-layouts — Use pathless routes for shared layoutsorg-index-routes — Understand index vs layout routesorg-virtual-routes — Understand virtual file routesload-)load-use-loaders — Use route loaders for data fetchingload-loader-deps — Define loaderDeps for cache controlload-ensure-query-data — Use ensureQueryData with TanStack Queryload-deferred-data — Split critical and non-critical dataload-error-handling — Handle loader errors appropriatelyload-parallel — Leverage parallel route loadingsearch-)search-validation — Always validate search paramssearch-type-inheritance — Leverage parent search param typessearch-middleware — Use search param middlewaresearch-defaults — Provide sensible defaultssearch-custom-serializer — Configure custom search param serializerserr-)err-not-found — Handle not-found routes properlynav-)nav-link-component — Prefer Link component for navigationnav-active-states — Configure active link statesnav-use-navigate — Use useNavigate for programmatic navigationnav-relative-paths — Understand relative path navigationnav-route-masks — Use route masks for modal URLssplit-)split-lazy-routes — Use .lazy.tsx for code splittingsplit-critical-path — Keep critical config in main route filesplit-auto-splitting — Enable autoCodeSplitting when possiblepreload-)preload-intent — Enable intent-based preloadingpreload-stale-time — Configure preload stale timepreload-manual — Use manual preloading strategicallyctx-)ctx-root-context — Define context at root routectx-before-load — Extend context in beforeLoadctx-dependency-injection — Use context for dependency injectionEach rule file in the rules/ directory contains:
See individual rule files in rules/ directory for detailed guidance and code examples.
Weekly Installs
854
Repository
GitHub Stars
82
First Seen
Jan 20, 2026
Security Audits
Gen Agent Trust HubPassSocketPassSnykPass
Installed on
opencode749
codex711
gemini-cli689
github-copilot683
cursor627
amp623
React 组合模式指南:Vercel 组件架构最佳实践,提升代码可维护性
102,200 周安装