由 Tanner Linsley 于 2024 年 12 月 03 日发布。
构建现代 Web 应用程序绝非易事。我们选择的框架和工具,不仅能影响我们的开发体验,更能决定我们所构建应用程序的成败。尽管市面上有许多出色的框架,但我相信 TanStack Router 和 TanStack Start 因其解决当今开发者面临的挑战以及为未来的发展做好准备的能力而脱颖而出。
这些不仅仅是另一套工具——它们代表着一种致力于用更少的阻力、更多的乐趣来构建更优秀应用的承诺。以下是我认为您会像我一样喜欢使用它们的原因。
类型安全不仅仅是一个流行词——它是构建健壮、可维护应用程序的基石。TanStack Router 超越了基本功能,提供了**上下文类型安全**,让类型能够无缝地流经应用的每个部分。路由定义、参数、导航,甚至状态管理,都与完全推断的类型协同工作。
这对您意味着什么?这意味着您无需再猜测是否正确定义了参数,无需调试不匹配的类型,也无需额外的插件或 AST 转换来填补空白。TanStack Router 遵循 TypeScript 的自然架构,使体验流畅、可预测且令人愉悦。
我认为,其他框架需要数年时间才能赶上这种程度的类型安全。
Web 开发中最常被忽视但最有用的工具之一就是 URL。它是原始的状态管理系统——快速、可共享且直观。然而,许多框架将 URL 视为次要考虑,只提供基本的读写状态的实用工具。
TanStack Router 彻底改变了这一模式。在 URL 中管理状态不仅得到支持,而且受到鼓励。通过直观的 API,您可以安全地验证、读取和更新搜索参数,并内置运行时验证。想要创建一个深度嵌套、动态的筛选系统,或将您的应用程序状态与 URL 同步?这轻而易举。
但这不仅仅是为了开发者方便——更是为了创造更好的用户体验。当您的应用程序状态存在于 URL 中时,用户可以分享它、将其加入书签,并从上次离开的地方继续。TanStack Router 使这一切变得像应有的一样简单。
如果您使用过 Remix 或 Next.js,您会在 TanStack Start 中找到许多熟悉的概念。但熟悉并不意味着妥协。我们借鉴了那些框架的一些最佳创意,并将其推向极致,去除了限制,引入了更多灵活性。
例如,如果您来自 Remix 这样的服务端优先的框架,路由模式和服务器函数集成会让您感到很自然,但它们同样适用于传统的客户端 SPA。您无需选择一方——您可以兼顾两者的优点,减少权衡。
Web 变化迅速。随着 React Server Components (RSCs) 的出现,React 19 引入了新的模式,以及流式传输成为数据传递的标准,框架需要的不仅仅是跟上步伐——它们需要引领方向。
TanStack Start 已为未来做好准备。RSCs 被视为另一种服务器端状态,拥有强大的缓存、失效和组合能力,可集成到您的应用程序中。流式传输并非事后诸葛,它已融入 TanStack 的核心工作方式,为您提供无需额外复杂性的工具,即可渐进式地向客户端发送数据和 HTML。
但我们不仅仅关注未来。TanStack Start 还使这些高级功能易于理解和使用。您无需等待“下一个大事件”即可开始构建具有未来感的应用程序。
如今,人们对服务端优先的架构有很多讨论,尽管它们令人兴奋,但并非全部。单页应用程序 (SPA) 仍然是构建快速、交互式应用程序的绝佳方式——尤其是在做得好的情况下。
TanStack Start 不仅使 SPA 保持可用——它还让它们变得更好。通过简化的模式、强大的状态管理和深入的集成,您可以构建性能更优、更易于维护且使用起来更令人愉悦的 SPA。无论您是服务端优先、客户端优先,还是介于两者之间,TanStack 都为您提供了构建所需应用的工具。
如果您使用过 **TanStack Query**,您已经知道它极大地简化了数据获取。但 TanStack Query 与 TanStack Router 之间的集成才是真正发挥魔力的地方。预取数据、缓存结果和流式更新都无缝、直观且可扩展。
例如,您可以在路由加载器中预取数据,将其流式传输到客户端,并按需进行水合——所有这些都通过单一 API 实现。无论您是管理一个简单的博客还是复杂的仪表板,您都会发现自己花费更少的时间进行数据连接,而将更多的时间用于构建功能。
这不是简单的集成——这是路由和数据获取之间的合作,让其他一切相比之下都显得笨拙。
路由不仅仅是一个工具——它是每个应用程序的骨干。然而,大多数路由器在事情变得复杂时都会陷入困境。这就是 TanStack Router 的优势所在。它旨在轻松处理从少量简单路由到数千个深度嵌套路由的所有情况,毫无压力。
类型安全的导航、分层路由上下文和高级状态同步等功能,使构建在规模和复杂性上都能扩展的应用变得容易。而且,由于 TanStack Router 原生支持 TypeScript,您无需牺牲性能或灵活性即可获得类型安全的所有优势。
最让我兴奋的是,TanStack 才刚刚起步。从同构服务器函数到强大的缓存原语和简化的 React Server Components 支持,我们不断突破着可能性的边界。我们的目标不仅仅是构建出色的工具——而是构建能够帮助*您*构建更优秀应用的工具。
其他框架各有所长,但如果您正在寻找创新、灵活且深度集成的工具,那么 TanStack Router 和 Start 无疑是其中的佼佼者。它们不仅解决了今天的问题——还在帮助您构建为明天做好了准备的应用。
那么,还在等什么?立即探索 TanStack Router 和 TanStack Start,看看应用开发能有多么出色。
让我们一起创造惊人的事物!