译零 TransZero · TanStack Query 中文文档
主站

MutationCache

更新于 2026-11-02 Vue 查看英文原文 ↗

定义于:packages/vue-query/src/mutationCache.ts:15

@tanstack/query-core 的 MutationCache 的 Vue 感知子类。find/findAll 同样接受一个 MaybeRefDeep 过滤器对象,因此可直接传入 ref,无需手动解包。可通过 queryClient.getMutationCache() 访问它 —— QueryClient 默认会构造一个此类实例。

继承自

  • MutationCache

构造函数

构造函数

TypeScript
1new MutationCache(config?: MutationCacheConfig): MutationCache;

定义于:packages/query-core/src/mutationCache.ts:128

参数

config?

MutationCacheConfig = {}

返回值

MutationCache

继承自

TypeScript
1MC.constructor

属性

config

TypeScript
1config: MutationCacheConfig = {};

定义于:packages/query-core/src/mutationCache.ts:128

继承自

TypeScript
1MC.config

方法

clear()

TypeScript
1clear(): void;

定义于:packages/query-core/src/mutationCache.ts:262

从缓存中移除所有修改。

返回值

void

示例

TypeScript
1const mutationCache = queryClient.getMutationCache()2 3mutationCache.clear()

继承自

TypeScript
1MC.clear

find()

TypeScript
1find<TData = unknown, TError = Error, TVariables = any, TOnMutateResult = unknown>(filters: MaybeRefDeep<MutationFilters<unknown, Error, unknown, unknown>>): 2  | Mutation<TData, TError, TVariables, TOnMutateResult>3  | undefined;

定义于:packages/vue-query/src/mutationCache.ts:16

一个稍高级的方法,可用于从缓存中获取已存在的修改实例。若该修改不存在,则返回 undefined。

大多数应用通常不需要此方法,但在极少数需要获取更多修改信息的场景下可能非常有用。

类型参数

TData

TData = unknown

TError

TError = Error

TVariables

TVariables = any

TOnMutateResult

TOnMutateResult = unknown

参数

filters

MaybeRefDeep<MutationFilters<unknown, Error, unknown, unknown>>

用于匹配的过滤器。exact 默认为 true。

返回值

| Mutation<TData, TError, TVariables, TOnMutateResult> | undefined

首个匹配的修改,或 undefined。

参见

MutationCache#findAll

示例

TypeScript
1const mutationCache = queryClient.getMutationCache()2 3const mutation = mutationCache.find({ mutationKey: ['addPost'] })

覆盖自

TypeScript
1MC.find

findAll()

TypeScript
1findAll(filters?: MaybeRefDeep<MutationFilters<unknown, Error, unknown, unknown>>): Mutation<unknown, Error, unknown, unknown>[];

定义于:packages/vue-query/src/mutationCache.ts:27

一个更高级的方法,可用于从缓存中获取所有匹配给定过滤器的现有修改实例。若无匹配的修改,则返回空数组。

大多数应用通常不需要此方法,但在极少数需要获取更多修改信息的场景下可能非常有用。

参数

filters?

MaybeRefDeep<MutationFilters<unknown, Error, unknown, unknown>> = {}

用于匹配的过滤器。若不提供过滤器,则返回所有修改。

返回值

Mutation<unknown, Error, unknown, unknown>[]

所有匹配的修改。

参见

MutationCache#find

示例

TypeScript
1const mutationCache = queryClient.getMutationCache()2 3const mutations = mutationCache.findAll({ mutationKey: ['addPost'] })

覆盖自

TypeScript
1MC.findAll

getAll()

TypeScript
1getAll(): Mutation<unknown, Error, unknown, unknown>[];

定义于:packages/query-core/src/mutationCache.ts:286

返回缓存中的所有修改。

大多数应用通常不需要此方法,但在极少数需要获取更多修改信息的场景下可能非常有用。

返回值

Mutation<unknown, Error, unknown, unknown>[]

缓存中的全部修改。

示例

TypeScript
1const mutationCache = queryClient.getMutationCache()2 3const mutations = mutationCache.getAll()

继承自

TypeScript
1MC.getAll

hasListeners()

TypeScript
1hasListeners(): boolean;

定义于:packages/query-core/src/subscribable.ts:43

当至少注册了一个监听器时返回 true;所有监听器均取消订阅后返回 false。

返回值

boolean

至少注册了一个监听器时返回 true。

继承自

TypeScript
1MC.hasListeners

subscribe()

TypeScript
1subscribe(listener: MutationCacheListener): () => void;

定义于:packages/query-core/src/subscribable.ts:28

注册一个监听器,使其在该对象通知每次更新时被调用。返回一个用于再次移除该监听器的函数 —— 调用它即可停止监听。基类自身永远不会主动丢弃监听器,但某些子类会在 destroy() 中清空其全部监听器。

参数

listener

MutationCacheListener

每次更新时被调用,接收子类传递给其订阅者的任意参数。

返回值

一个用于移除监听器的函数。

() => void

示例

TypeScript
1const unsubscribe = subscribable.subscribe(() => {2  // react to the update3})4 5unsubscribe()

继承自

TypeScript
1MC.subscribe

本页为 TanStack Query 文档(Vue 版)的非官方中文翻译,原文由上游团队维护,遵循 MIT 许可。 译文如有偏差,以英文原文为准。

译自上游 59d11de