SuperAPI AI 工具集

tanstack-query-intent-compositions-automatic-invalidati-a8e9b778

设计与创作

查看项目

更新于 10-16 06:24

技能介绍

用途:为 TanStack Query 的 mutation 设计自动失效(invalidation)策略,避免每次 mutation 后手动逐个失效查询,也避免无差别地失效整个应用缓存。

主要能力:

  1. 全局失效策略。通过 MutationCache 的 onSuccess 回调统一处理所有 mutation 的失效逻辑,示例中在回调内调用 queryClient.invalidateQueries({ queryKey: mutation.options.mutationKey }),使带 mutationKey: ['issues'] 的 mutation 只失效匹配的 issue 查询。
  2. 显式失效标签。借助 meta 与 matchQuery,在 predicate 中判断 mutation.meta?.invalidates 是否匹配某个 queryKey,从而按标签精确失效目标查询。
  3. 局部与全局的取舍。一次性行为用局部 mutation 回调;需要全应用一致策略时用 MutationCache 回调。

必要用法与注意点:

  • 全局策略必须有作用域,优先使用 mutationKey 或 meta 标签,不要直接 invalidateQueries() 失效全部。
  • 若 pending UI 依赖重新拉取,onSuccess 需返回 invalidateQueries 返回的 Promise,使 mutation 保持 pending 直到失效重取完成。
  • 对不应被重新拉取的静态数据,使用 staleTime: 'static' 而非 Infinity,以免被宽泛的手动失效波及。

适用场景:React 等框架下使用 TanStack Query 管理服务端状态、mutation 后需要同步刷新相关查询列表或详情的项目。

限制:资料仅给出上述模式与错误示例,未提供安装命令、版本要求、完整 API 说明或性能数据,这些内容暂未提供。