先拆名词。TanStack 不是一个框架,而是一组库。TanStack Start 只是其中最接近 Next.js 的“全栈框架形态”。
| 模块 | 你可以把它理解为 | 在 Next.js 世界里的近似物 | 关键差异 |
|---|---|---|---|
| TanStack Router | 类型安全路由和 URL 状态系统 | App Router / Pages Router 的路由部分 | 路径、params、search、loader、context 都参与类型推导 |
| TanStack Query | server state 管理系统 | SWR / React Query / 手写 fetch cache | mutation、invalidation、dedupe、后台刷新是主场 |
| TanStack Start | 基于 Router 的全栈 React 框架 | Next.js / Remix / React Router Framework | 显式 loader/server function/middleware/deployment,而非平台默认魔法 |
官方说得很直白:TanStack Start 100% 依赖 TanStack Router。你如果没理解 Router 的类型系统、search params、loader cache,就会把 Start 学成“另一个 Next.js 项目模板”。这很常见,也很浪费。
如果你只做一个纯 SPA,但想要类型安全路由和 search params,必须用 Start 吗?