TanStack Router 是一个用于构建 React 和 Solid 应用程序的路由器。它的一些功能包括
要快速开始,请前往下一页。如需更详细的解释,请系好安全带,让我带您快速了解!
使用路由器构建应用程序被广泛认为是必不可少的,并且通常是您在技术堆栈中做出的首批选择之一。
这是否意味着 TanStack Router 是一个框架?
TanStack Router 本身并不是传统意义上的“框架”,因为它没有解决其他一些常见的全栈问题。然而,TanStack Router 被设计为可以升级为全栈框架,当与其他工具(如打包、部署和服务器端特定功能)结合使用时。这就是为什么我们目前正在开发 TanStack Start,一个基于 TanStack Router 和 Nitro、Vite 等工具的全栈框架。
要深入了解 TanStack Router 的历史,请随时阅读 TanStack Router 的历史。
TanStack Router 提供了与您期望的其他路由器相同的基本功能
并且它还提供了一些提升标准的新功能
让我们更详细地深入了解一些更重要的功能!
现在的一切都用“Typescript”编写,或者至少提供了覆盖运行时功能的类型定义,但生态系统中很少有软件包真正从 TypeScript 的角度设计其 API。因此,虽然我很高兴您的路由器可以自动完成您的选项字段并捕获一些属性/方法拼写错误,但还有更多好处可以获得。
这对您意味着什么?
搜索参数通常是事后才考虑的,被视为字符串(或字符串)的黑匣子,您可以解析和更新,但仅此而已。现有的解决方案也不是类型安全的,这增加了处理它们所需的谨慎。即使是最“现代”的框架和路由器,也让您自己弄清楚如何管理这种状态。有时他们会将搜索字符串解析为对象,或者有时您需要自己使用 URLSearchParams 来完成。
让我们退后一步,记住搜索参数是您整个应用程序中最强大的状态管理器。 它们是全局的、可序列化的、可书签的且可共享的,这使它们成为存储任何需要从页面刷新或社交分享中幸存下来的状态的完美场所。
为了不辜负这一责任,搜索参数是 TanStack Router 中的一等公民。虽然仍然基于标准的 URLSearchParams,但 TanStack Router 使用强大的解析器/序列化器来管理搜索参数中更深层和更复杂的数据结构,同时保持它们的类型安全且易于使用。
这就像在 URL 中拥有 useState 一样!
搜索参数是
一旦您开始使用 TanStack Router 的搜索参数,您会想知道没有它们您是如何生活的。
数据加载是任何应用程序的关键部分,虽然大多数现有路由器都提供某种形式的关键数据加载 API,但在缓存和数据生命周期管理方面,它们通常会显得不足。现有的解决方案存在一些常见问题
TanStack Router 通过缓存和数据加载的双管齐下的方法来解决这些问题
TanStack Router 提供了一个轻量级的内置缓存层,可以与 Router 无缝协作。此缓存层松散地基于 TanStack Query,但功能更少,API 表面积更小。与 TanStack Query 一样,合理但强大的默认设置保证您的数据被缓存以供重用,在必要时失效,并在不使用时进行垃圾回收。它还提供了一个简单的 API,用于在需要时手动使缓存失效。
TanStack Router 在设计时考虑了灵活而强大的数据加载 API,可以更轻松地与现有数据获取库(如 TanStack Query、SWR、Apollo、Relay 甚至您自己的自定义数据获取解决方案)集成。可配置的 API,如 context、beforeLoad、loaderDeps 和 loader 协同工作,使您可以轻松定义声明式数据依赖项、预取数据以及轻松管理外部数据源的生命周期。
TanStack Router 的路由器和路由上下文是一项强大的功能,允许您定义特定于路由的上下文,然后该上下文由所有子路由继承。即使是路由器和根路由本身也可以提供上下文。上下文可以同步和异步构建,并且可以用于在路由和路由配置之间共享数据、配置甚至函数。这对于以下场景特别有用,例如
此外,如果路由上下文不是类型安全的,那又有什么意义呢?TanStack Router 的路由上下文是完全类型安全的,并且以零成本推断给您。
TanStack Router 同时支持基于文件和基于代码的路由。这种灵活性使您可以选择最适合您项目需求的方法。
TanStack Router 的基于文件的路由方法是独特的用户友好的。路由配置由 Vite 插件或 TanStack Router CLI 为您生成,让您可以自行决定如何使用生成的代码!这意味着您始终可以完全控制您的路由和路由器,即使您使用基于文件的路由。
TanStack Router 构建在许多其他 OSS 项目推广的概念和模式之上,包括
我们承认投入到其开发中的投资、风险和研究,但很高兴将他们设定的标准推向更高的高度。
概述就足够了,TanStack Router 还有很多事情要做。点击下一个按钮,让我们开始吧!
您的每周 JavaScript 新闻速递。每周一免费发送给超过 100,000 名开发者。