这是什么?
TanStack Query 是一个异步状态管理库,可以简化 Web 应用中服务端状态的获取、缓存、同步和更新。
它是框架还是库?
它是一个库(一组 hooks/composables),不是框架,可以直接集成到现有的 React、Vue、Svelte 或 Solid 应用中。
怎样把它添加到项目里?
通过包管理器安装对应框架的包(例如 @tanstack/react-query),用 QueryClientProvider 包裹应用,然后开始调用 useQuery/useMutation 等 hooks。
支持哪些前端框架?
支持 React Query、Solid Query、Svelte Query 和 Vue Query;它使用 TypeScript 编写,既可以用 JS 也可以用 TS 使用。
它自己会处理数据请求逻辑吗?
不会。它与协议无关:你可以使用自己的 fetch、GraphQL 或基于 Promise 的函数,TanStack Query 负责管理其周围的缓存、重新请求和生命周期。
它支持服务端渲染吗?
支持。它支持 React Suspense,并且设计上可以配合 SSR 方案中常用的预取模式使用。
什么是 stale-while-revalidate?TanStack Query 用了它吗?
用了。这是一种缓存模式:先立即展示过期数据,同时在后台重新请求并更新数据。它是 TanStack Query 缓存失效机制的核心。
有开发者工具支持吗?
TanStack 生态中包含一个统一的开发者工具面板,可以和 Query 一起使用,用来查看缓存状态。
可以用它实现分页和无限滚动吗?
可以。分页和无限滚动是内置支持的模式,同时还支持预取和取消请求。
还有哪些 TanStack 工具可以和 Query 搭配使用?
生态中还包括用于类型安全路由的 TanStack Router、用于表单状态的 TanStack Form、用于数据表格的 TanStack Table,以及用于全栈 SSR 的 TanStack Start。