工程开发
router-query-integration avatar

router-query-integration

整合 TanStack Router 与 TanStack Query 以优化数据获取,消除请求串联(waterfalls)并实现单页应用程序的瞬间导航。

简介

此技能为整合 TanStack Router 与 TanStack Query 提供了系统性的方法,专为构建高性能单页应用程序(SPA)的开发人员而设计。核心目标是将数据获取从组件渲染阶段转移到路由加载器(loader)阶段,有效地消除请求串联(waterfalls)并提高感知的性能。通过在导航生命周期中利用查询预取(prefetching),此技能确保在路由组件挂载时已准备好关键数据,从而实现瞬间导航体验。

  • 通过 ensureQueryData、prefetchQuery 和 fetchQuery 方法,实现路由加载器与查询客户端之间的精确协作。

  • 支持复杂的数据需求,包括多个查询的并行获取,以及需要先验证路由参数的序列化依赖查询。

  • 通过使用 Query Options 模式促进强类型安全性,确保在功能模块与路由之间实现 DRY(不要重复自己)的代码编写。

  • 提供稳健的错误处理模式,允许开发人员在路由加载器中捕获加载失败,并通过标准的 Router 错误边界进行显示。

  • 包含查询失效与缓存管理的最佳实践,特别是在处理变更(mutations)以确保整个应用程序的数据一致性时。

  • 为 QueryClient 提供优化的配置模式,以微调 staleTime 和 gcTime,从而获得更好的缓存性能。

  • 适用于使用 React 与 TanStack 生态系统库的前端工程师,他们需要优化复杂的导航流程。

  • 预期的输入包括路由定义、查询键(query keys)定义以及 API 获取函数。

  • 主要产出为一个强健且具备类型安全的数据加载架构,保证在组件渲染前数据已可用。

  • 限制条件包括确保 QueryClient 单例可供路由模块导入,并确保加载器逻辑保持纯净,以支持服务器端渲染(SSR)与导航中断。

  • 建议在应用程序根目录实现 QueryClientProvider,以实现路由、查询缓存与 React 树之间的无缝整合。

仓库统计

Star 数
255
Fork 数
31
Open Issue 数
7
主要语言
TypeScript
默认分支
main
同步状态
空闲
最近同步时间
2026年4月28日 13:11
在 GitHub 查看