用途:TanStack Query 是异步状态管理器,而非数据获取库。你提供返回 Promise 的 queryFn,它负责缓存、去重、后台更新与过期数据管理。适用于无限滚动、离线优先应用、聚焦或重连时自动重新获取、复杂缓存失效、React Native 及混合服务端/客户端应用;不适用于纯同步状态、规范化 GraphQL 缓存或仅用服务端组件的简单场景。
主要能力:覆盖基础查询 useQuery({ queryKey, queryFn })、Suspense 查询 useSuspenseQuery、并行 useQueries、依赖查询 enabled、可复用 queryOptions、变更 useMutation 与 useMutationState、乐观更新、无限查询 useInfiniteQuery(v5 需 initialPageParam)、预取 prefetchQuery、失效 invalidateQueries、取消 signal、select 转换、skipToken 及串行变更 scope。
v5 迁移:useQuery 改为对象语法;cacheTime 改为 gcTime;isLoading 改为 isPending;keepPreviousData 改为 placeholderData: keepPreviousData;查询级 onSuccess/onError 移除;useErrorBoundary 改为 throwOnError;initialPageParam 必填;错误类型默认 Error。
常见错误:先查 isPending 而非数据优先;把服务端状态复制到 useState;在组件内创建 QueryClient;用 refetch 处理参数变化而非改 queryKey;useQuery 与 useInfiniteQuery 共用 key;内联 select 未记忆化;catch 未重新抛出;手动泛型;解构 query 破坏类型收窄;useSuspenseQuery 使用 enabled;SSR 未 await 预取;invalidateQueries 未用 refetchType: 'all'。
限制与协作:资料未提供安装命令、版本号与具体代码示例;若存在 tanstack-router、tanstack-form、tanstack-table、tanstack-start、tanstack-devtools、tanstack-db、tanstack-virtual、tanstack-store、electricsql、local-first 等技能,可将对应路由、表单、表格、SSR、调试、数据库、虚拟化、状态管理与同步模式委派给它们。