用途:为 React 应用提供 TanStack Query v5(React Query)的参考,处理数据获取、缓存与服务端状态管理。适用于编写 useQuery、useMutation、useInfiniteQuery,配置 QueryClient,以及实现查询失效、乐观更新、预取和依赖查询等场景。
主要能力:通过 QueryClientProvider 与 QueryClient 配置默认项(staleTime、gcTime、retry、refetchOnWindowFocus 等);使用 queryOptions/infiniteQueryOptions 复用查询键与查询函数并获得类型推断;useQuery 提供 data、status、isPending、isFetching、isLoading、fetchStatus 等状态;useMutation 支持 onMutate、onSuccess、onError、onSettled 生命周期与 mutateAsync;invalidateQueries 支持前缀、exact 与 predicate 匹配;乐观更新可通过 UI 或缓存回滚两种方式实现;useInfiniteQuery 需 initialPageParam 与 getNextPageParam;分页可用 keepPreviousData;预取支持 prefetchQuery、usePrefetchQuery、prefetchInfiniteQuery;依赖查询可用 enabled 或 skipToken。
使用方式:安装并引入 @tanstack/react-query,在应用根部包裹 QueryClientProvider;查询键必须为数组,查询函数依赖的变量需包含在键中;setQueryData 需返回新对象而非原地修改;乐观更新前应 cancelQueries。
限制:资料未提供安装命令、版本兼容范围、收费与平台信息;skipToken 会使 refetch() 失效,需手动重取时应改用 enabled: false;重叠 mutation 的每次调用回调仅对最新调用生效。