这是什么?
TanStack Router 是一个面向 Web 的现代路由库,主打端到端的类型安全——路由、参数、加载器(loader)和搜索参数都会经过类型检查。这个仓库还托管了 TanStack Start,一个构建在该路由之上的全栈框架。
它是一个路由库,还是一套完整的框架?
两者都有,在同一个仓库里:Router 是以客户端为先的路由库,而 Start 是在它之上可选的全栈层,提供整页 SSR、流式渲染、服务器函数和开箱即可部署的构建。
我怎么把它装到我的项目里?
安装对应你所用框架的包(npm install @tanstack/react-router),然后按照 Router 文档里的快速上手操作;Start 有自己的一套文档。仓库本身是一个 pnpm + nx 的 monorepo。
它只能在 React 里用吗?
React 是主要目标——这个项目自称是'面向 Web(React 及更多)'的路由,整个代码库都用 TypeScript 编写。当前支持的框架列表请查看文档。
它已经可以用于生产环境,还是仍处于实验阶段?
它的定位是生产可用,而不是实验性项目:Start 提供开箱即可部署的打包和构建,而且仓库的 CI 会在每次改动时运行 eslint、单元测试、e2e 测试、类型检查和构建检查。
我可以用它做一个纯单页应用(SPA)吗,还是必须要有服务端?
这个路由以客户端为先,所以经典的单页应用就是最基本的使用场景——不需要服务器。TanStack Start 是可选的:当你想在同一套路由模型上获得整页 SSR、流式渲染和服务器函数时,再加上它即可。
它能自己处理数据请求和缓存吗?
可以——缓存、预取和数据失效都内置在路由里,加载器(loader)也是路由中带类型的组成部分,所以不需要额外引入别的库就能实现数据驱动的导航。
它是怎么处理 URL 查询参数的?
它是基于 schema 的:你可以为每个路由声明一个校验 schema,参数从端到端保持完全的类型安全,而不是从 URL 里解析出来的松散字符串。
可以做嵌套布局和按路由的错误处理吗?
可以——嵌套布局、过渡动画和错误边界(error boundary)都是路由内置的一等特性。
Which topics is it in?
fullstack, typesafe, routing, rpc, router, full-stack, ssr, devtools, state-management, caching, search, web-development