用途:TanStack Query(React Query)v5 用于 React 应用的服务器状态管理,处理数据获取、缓存、同步与更新。
主要能力:QueryClient 与 QueryClientProvider 全局配置;useQuery 自定义查询 Hook;useMutation 变更操作;查询缓存与失效(invalidateQueries);乐观更新(onMutate/onError/onSettled);错误边界(QueryErrorResetBoundary 与 throwOnError);DevTools 可视化调试。v5 使用对象语法、数组查询键,并以 gcTime 替代 cacheTime,isPending 表示初始加载状态。
使用方式:安装依赖 npm install @tanstack/react-query@latest,开发依赖 npm install -D @tanstack/react-query-devtools@latest,可选 ESLint 插件 npm install -D @tanstack/eslint-plugin-query。在入口文件创建 QueryClient,用 QueryClientProvider 包裹整个应用,并在 Provider 内放置 ReactQueryDevtools。查询使用 useQuery({ queryKey, queryFn }),queryFn 中需抛出错误;变更使用 useMutation,成功后调用 queryClient.invalidateQueries。
适用场景:React 18+ 与 TypeScript 4.7+ 项目中的数据获取、缓存管理与交互式更新。
限制:v5 与 v4 存在破坏性变更(已移除查询回调与旧数组/函数语法);需 React 18 以上(依赖 useSyncExternalStore);乐观更新不适合支付、账户设置等关键数据;staleTime、retry 等默认值需按需配置。资料中未提供具体收费与许可信息。