用途:TanStack Query(React Query)v5 的实践指南,面向 React 数据驱动应用的数据获取、缓存、mutation 与服务端状态管理。版本为 @tanstack/react-query@5.90.x,要求 React 18.0+ 与 TypeScript 4.7+。
主要能力:提供查询缓存与失效、mutation 与乐观更新、错误处理、预取、无限查询、SSR/水合、并行查询、性能优化、离线支持等规则,按 CRITICAL/HIGH/MEDIUM/LOW 分级。v5 新特性包括 useMutationState、简化乐观更新、throwOnError、networkMode、useQueries 的 combine、infiniteQueryOptions、maxPages,以及 v5.89+ mutation 回调新增第 4 个参数 onMutateResult。
使用方式:安装 npm install @tanstack/react-query@latest @tanstack/react-query-devtools@latest;用 QueryClient、QueryClientProvider 包裹应用。可单独用 ReactQueryDevtools,或多 TanStack 库时用 @tanstack/react-devtools 统一外壳配合 *Panel 变体。核心钩子包括 useQuery、useMutation、useQueryClient、queryOptions,并给出依赖查询、并行查询、悬停预取、无限滚动、请求取消、数据转换等模式。
关键约定:所有钩子用对象语法;查询键用数组;queryFn 内抛错;初载用 isPending;mutation 后失效查询;用 queryOptions 工厂复用。v5 移除查询回调、keepPreviousData、useErrorBoundary 等,cacheTime 改名 gcTime,status 的 loading 改为 pending。
限制:资料列出 v5.90.x 已知问题,如流式 SSR 水合不匹配、useQuery 预取水合错误、错误查询忽略 refetchOnMount、useMutationState 类型模糊、invalidateQueries 仅刷新活跃查询、只读查询键在 v5.90.8 失效等。