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

QueryClient

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

定义于:packages/vue-query/src/queryClient.ts:52

一个具备 Vue 意识的 @tanstack/query-core QueryClient 子类。接受 options(例如 CancelOptions 或 InvalidateOptions)或过滤器(例如 invalidateQueries 所接受的 QueryFilters)的方法,也接受其 MaybeRefDeep 版本,因此你可以直接传入 ref,无需手动解包 — 例如 queryClient.invalidateQueries({ queryKey: ['post', myRef] })。

在 queryKey 中,所有 ref 条目都会在每个方法调用时以这种方式自动解包;但响应式 getter 条目(() => id.value)仅当 queryKey 作为 filters/options 对象的 queryKey 属性传入时才会被解包(例如 invalidateQueries({ queryKey: ['post', idGetter] }));而像 getQueryData 这类将 queryKey 数组作为独立参数接收的方法,则不会在此处解包 getter 条目,此时 getter 函数本身会直接进入缓存键。

使用 VueQueryPlugin 在你的应用中安装一个,或使用 useQueryClient 获取它。

继承自

  • QueryClient

构造函数

构造函数

TypeScript
1new QueryClient(config?: QueryClientConfig): QueryClient;

定义于:packages/vue-query/src/queryClient.ts:53

参数

config?

QueryClientConfig = {}

返回值

QueryClient

覆盖

TypeScript
1QC.constructor

属性

isRestoring?

TypeScript
1optional isRestoring?: Ref<boolean, boolean>;

定义于:packages/vue-query/src/queryClient.ts:66

当通过 VueQueryPlugin 传入的 clientPersister 正在恢复缓存时,该值为 true。在此期间,查询不会拉取数据。若未配置持久化器,则默认为 false。

方法

cancelQueries()

TypeScript
1cancelQueries<TTaggedQueryKey extends readonly unknown[] = readonly unknown[]>(filters?: QueryFilters<TTaggedQueryKey>, options?: MaybeRefDeep<CancelOptions>): Promise<void>;

定义于:packages/vue-query/src/queryClient.ts:225

取消匹配给定筛选条件的查询的正在进行中的拉取操作。该方法在执行乐观更新时最为有用,因为否则任何后续解析的后台重新拉取操作都会覆盖乐观更新的结果。默认情况下(revert: true),被取消查询的数据会回滚至该拉取操作开始前的状态。

返回的 Promise 永远不会被拒绝,即使个别取消操作失败。

类型参数

TTaggedQueryKey

TTaggedQueryKey extends readonly unknown[] = readonly unknown[]

参数

filters?

QueryFilters<TTaggedQueryKey>

用于选择要取消哪些查询的筛选条件。若不提供筛选条件,则取消所有查询。

options?

MaybeRefDeep<CancelOptions>

返回值

Promise<void>

一个 Promise,当所有取消操作均完成时即解析。

示例

TypeScript
1await queryClient.cancelQueries({ queryKey: ['posts'], exact: true })

覆盖自

TypeScript
1QC.cancelQueries

clear()

TypeScript
1clear(): void;

定义于:packages/query-core/src/queryClient.ts:1172

清空此客户端所连接的查询缓存和修改缓存。

返回值

void

示例

TypeScript
1import { QueryClient } from '@tanstack/query-core'2 3const queryClient = new QueryClient()4queryClient.clear()

继承自

TypeScript
1QC.clear

defaultMutationOptions()

TypeScript
1defaultMutationOptions<T extends MutationOptions<any, any, any, any>>(options?: T): T;

定义于:packages/query-core/src/queryClient.ts:1147

QueryClient#defaultQueryOptions 的对应修改版本。由框架适配器(例如在 useMutation 内部)调用,以合并客户端自身的 defaultOptions.mutations,然后为给定的 mutationKey 合并 queryClient.setMutationDefaults,最后再叠加调用方传入的选项。若选项已默认化(_defaulted: true),则该方法不执行任何操作。

类型参数

T

T extends MutationOptions<any, any, any, any>

参数

options?

T

调用方传入的修改选项。

返回值

T

已默认化的选项。

继承自

TypeScript
1QC.defaultMutationOptions

defaultQueryOptions()

TypeScript
1defaultQueryOptions<TQueryFnData = unknown, TError = Error, TData = TQueryFnData, TQueryData = TQueryFnData, TQueryKey extends readonly unknown[] = readonly unknown[], TPageParam = never>(options: 2  | QueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey, TPageParam>3| DefaultedQueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>): DefaultedQueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>;

定义于:packages/query-core/src/queryClient.ts:1058

由框架适配器(例如在 useQuery 内部)调用,将调用方传入的选项解析为其最终的、已默认化的形式:先合并客户端自身的 defaultOptions.queries,再为给定的 queryKey 合并 queryClient.setQueryDefaults,最后叠加调用方的选项。若选项已默认化(_defaulted: true),则该方法不执行任何操作。

类型参数

TQueryFnData

TQueryFnData = unknown

TError

TError = Error

TData

TData = TQueryFnData

TQueryData

TQueryData = TQueryFnData

TQueryKey

TQueryKey extends readonly unknown[] = readonly unknown[]

TPageParam

TPageParam = never

参数

options

| QueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey, TPageParam> | DefaultedQueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>

调用方传入的查询选项。

返回值

DefaultedQueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>

已默认化的选项,其中 queryHash 及其依赖的默认值(例如 refetchOnReconnect)均已填充。

继承自

TypeScript
1QC.defaultQueryOptions

ensureInfiniteQueryData()

TypeScript
1ensureInfiniteQueryData<TQueryFnData, TError = Error, TData = TQueryFnData, TQueryKey extends readonly unknown[] = readonly unknown[], TPageParam = unknown>(options: EnsureInfiniteQueryDataOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam>): Promise<InfiniteData<TData, TPageParam>>;

定义于:packages/query-core/src/queryClient.ts:813

返回无限查询的缓存数据;若尚无缓存,则执行拉取。启用 revalidateIfStale 时,过期的缓存数据也会在后台重新拉取。

类型参数

TQueryFnData

TQueryFnData

TError

TError = Error

TData

TData = TQueryFnData

TQueryKey

TQueryKey extends readonly unknown[] = readonly unknown[]

TPageParam

TPageParam = unknown

参数

options

EnsureInfiniteQueryDataOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam>

无限查询选项。若该查询尚无缓存数据,则使用这些选项执行拉取。

返回值

Promise<InfiniteData<TData, TPageParam>>

一个 Promise,解析为缓存的 InfiniteData,或若尚无缓存则解析为拉取到的数据。

已弃用

请改用 queryClient.infiniteQuery({ ...options, staleTime: 'static' })。该方法将在下一个主版本中移除。

继承自

TypeScript
1QC.ensureInfiniteQueryData

ensureQueryData()

调用签名

TypeScript
1ensureQueryData<TQueryFnData, TError = Error, TData = TQueryFnData, TQueryKey extends readonly unknown[] = readonly unknown[]>(options: EnsureQueryDataOptions<TQueryFnData, TError, TData, TQueryKey>): Promise<TData>;

定义于:packages/vue-query/src/queryClient.ts:105

返回查询的缓存数据;若尚无缓存,则执行拉取。启用 revalidateIfStale 时,过期的缓存数据也会在后台重新拉取。

类型参数
TQueryFnData

TQueryFnData

TError

TError = Error

TData

TData = TQueryFnData

TQueryKey

TQueryKey extends readonly unknown[] = readonly unknown[]

参数
options

EnsureQueryDataOptions<TQueryFnData, TError, TData, TQueryKey>

查询选项。若该查询尚无缓存数据,则使用这些选项执行拉取。

返回值

Promise<TData>

一个 Promise,解析为缓存的数据,或若尚无缓存则解析为拉取到的数据。

已弃用

请改用 queryClient.query({ ...options, staleTime: 'static' })。该方法将在下一个主版本中移除。

覆盖自
TypeScript
1QC.ensureQueryData

调用签名

TypeScript
1ensureQueryData<TQueryFnData, TError = Error, TData = TQueryFnData, TQueryKey extends readonly unknown[] = readonly unknown[]>(options: MaybeRefDeep<EnsureQueryDataOptions<TQueryFnData, TError, TData, TQueryKey, never>>): Promise<TData>;

定义于:packages/vue-query/src/queryClient.ts:117

返回查询的缓存数据;若尚无缓存,则执行拉取。启用 revalidateIfStale 时,过期的缓存数据也会在后台重新拉取。

类型参数
TQueryFnData

TQueryFnData

TError

TError = Error

TData

TData = TQueryFnData

TQueryKey

TQueryKey extends readonly unknown[] = readonly unknown[]

参数
options

MaybeRefDeep<EnsureQueryDataOptions<TQueryFnData, TError, TData, TQueryKey, never>>

查询选项。若该查询尚无缓存数据,则使用这些选项执行拉取。

返回值

Promise<TData>

一个 Promise,解析为缓存的数据,或若尚无缓存则解析为拉取到的数据。

已弃用

请改用 queryClient.query({ ...options, staleTime: 'static' })。该方法将在下一个主版本中移除。

覆盖自
TypeScript
1QC.ensureQueryData

fetchInfiniteQuery()

调用签名

TypeScript
1fetchInfiniteQuery<TQueryFnData = unknown, TError = Error, TData = TQueryFnData, TQueryKey extends readonly unknown[] = readonly unknown[], TPageParam = unknown>(options: FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam>): Promise<InfiniteData<TData, TPageParam>>;

定义于:packages/vue-query/src/queryClient.ts:532

拉取并缓存一个无限查询,或若其未过期则直接返回其缓存数据。

类型参数
TQueryFnData

TQueryFnData = unknown

TError

TError = Error

TData

TData = TQueryFnData

TQueryKey

TQueryKey extends readonly unknown[] = readonly unknown[]

TPageParam

TPageParam = unknown

参数
options

FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam>

无限查询选项,包括 queryKey、queryFn 和 initialPageParam。

返回值

Promise<InfiniteData<TData, TPageParam>>

一个 Promise,解析为缓存或拉取到的 InfiniteData,或因拉取错误而被拒绝。

已弃用

请改用 queryClient.infiniteQuery(options)。该方法将在下一个主版本中移除。

覆盖自
TypeScript
1QC.fetchInfiniteQuery

调用签名

TypeScript
1fetchInfiniteQuery<TQueryFnData, TError = Error, TData = TQueryFnData, TQueryKey extends readonly unknown[] = readonly unknown[], TPageParam = unknown>(options: MaybeRefDeep<FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam>>): Promise<InfiniteData<TData, TPageParam>>;

定义于:packages/vue-query/src/queryClient.ts:551

拉取并缓存一个无限查询,或若其未过期则直接返回其缓存数据。

类型参数
TQueryFnData

TQueryFnData

TError

TError = Error

TData

TData = TQueryFnData

TQueryKey

TQueryKey extends readonly unknown[] = readonly unknown[]

TPageParam

TPageParam = unknown

参数
options

MaybeRefDeep<FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam>>

无限查询选项,包括 queryKey、queryFn 和 initialPageParam。

返回值

Promise<InfiniteData<TData, TPageParam>>

一个 Promise,解析为缓存或拉取到的 InfiniteData,或因拉取错误而被拒绝。

已弃用

请改用 queryClient.infiniteQuery(options)。该方法将在下一个主版本中移除。

覆盖自
TypeScript
1QC.fetchInfiniteQuery

fetchQuery()

调用签名

TypeScript
1fetchQuery<TQueryFnData, TError = Error, TData = TQueryFnData, TQueryKey extends readonly unknown[] = readonly unknown[], TPageParam = never>(options: FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam>): Promise<TData>;

定义于:packages/vue-query/src/queryClient.ts:360

拉取并缓存一个查询,或若其未过期则直接返回其缓存数据。与观察者不同,除非设置了 retry,否则该拉取操作不会重试。

类型参数
TQueryFnData

TQueryFnData

TError

TError = Error

TData

TData = TQueryFnData

TQueryKey

TQueryKey extends readonly unknown[] = readonly unknown[]

TPageParam

TPageParam = never

参数
options

FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam>

查询选项,包括 queryKey 和 queryFn(若查询需要拉取则使用)。

返回值

Promise<TData>

一个 Promise,解析为缓存或拉取到的数据,或因拉取错误而被拒绝。

已弃用

请改用 queryClient.query(options)。该方法将在下一个主版本中移除。

覆盖自
TypeScript
1QC.fetchQuery

调用签名

TypeScript
1fetchQuery<TQueryFnData, TError = Error, TData = TQueryFnData, TQueryKey extends readonly unknown[] = readonly unknown[], TPageParam = never>(options: 2  | MaybeRefDeep<FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam>>3| (() => FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam>)): Promise<TData>;

定义于:packages/vue-query/src/queryClient.ts:379

拉取并缓存一个查询,或若其未过期则直接返回其缓存数据。与观察者不同,除非设置了 retry,否则该拉取操作不会重试。

类型参数
TQueryFnData

TQueryFnData

TError

TError = Error

TData

TData = TQueryFnData

TQueryKey

TQueryKey extends readonly unknown[] = readonly unknown[]

TPageParam

TPageParam = never

参数
options

| MaybeRefDeep<FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam>> | (() => FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam>)

查询选项,包括 queryKey 和 queryFn(若查询需要拉取则使用)。

返回值

Promise<TData>

一个 Promise,成功时解析为缓存或拉取到的数据,失败时以拉取错误拒绝。

已弃用

请改用 queryClient.query(options)。此方法将在下一个主版本中移除。

重写自
TypeScript
1QC.fetchQuery

getDefaultOptions()

TypeScript
1getDefaultOptions(): DefaultOptions;

定义于:packages/query-core/src/queryClient.ts:897

返回创建客户端时设置的默认选项,或通过 QueryClient#setDefaultOptions 设置的默认选项。

返回值

DefaultOptions

客户端当前的默认选项。

示例

TypeScript
1import { QueryClient } from '@tanstack/query-core'2 3const queryClient = new QueryClient()4const defaultOptions = queryClient.getDefaultOptions()

继承自

TypeScript
1QC.getDefaultOptions

getMutationCache()

TypeScript
1getMutationCache(): MutationCache;

定义于:packages/query-core/src/queryClient.ts:881

返回此客户端所连接的修改缓存。

返回值

MutationCache

MutationCache 实例。

示例

TypeScript
1import { QueryClient } from '@tanstack/query-core'2 3const queryClient = new QueryClient()4const mutationCache = queryClient.getMutationCache()5const mutations = mutationCache.findAll({ status: 'pending' })

继承自

TypeScript
1QC.getMutationCache

getMutationDefaults()

TypeScript
1getMutationDefaults(mutationKey: MaybeRefDeep<readonly unknown[]>): MutationObserverOptions<any, any, any, any>;

定义于:packages/vue-query/src/queryClient.ts:695

返回已注册的、其修改键(mutation key)与给定 mutationKey 部分匹配的修改的默认选项,注册方式为 QueryClient#setMutationDefaults。若多个已注册的默认选项匹配,则按注册顺序合并。

参数

mutationKey

MaybeRefDeep<readonly unknown[]>

用于查找已注册默认选项的修改键。

返回值

MutationObserverOptions<any, any, any, any>

所有匹配注册项的合并后默认选项;若无匹配项,则返回空对象。

示例

TypeScript
1const defaultOptions = queryClient.getMutationDefaults(['addPost'])

重写自

TypeScript
1QC.getMutationDefaults

getQueriesData()

TypeScript
1getQueriesData<TData = unknown>(filters: MaybeRefDeep<QueryFilters<readonly unknown[]>>): [readonly unknown[], TData | undefined][];

定义于:packages/vue-query/src/queryClient.ts:141

命令式(非响应式)地一次性获取多个查询的缓存数据。仅返回匹配给定筛选器的查询;若无匹配项,则返回空数组。

由于匹配的查询可能持有不同结构的数据(例如宽泛的筛选器可能匹配具有无关数据类型的查询),因此 TQueryFnData 泛型默认为 unknown,而非自动推断。传入更具体的类型是为调用方提供便利——当调用方明确知道每个匹配查询持有相同结构的数据时可使用;但该类型不会校验实际缓存内容。

类型参数

TData

TData = unknown

参数

filters

MaybeRefDeep<QueryFilters<readonly unknown[]>>

用于选择要读取哪些查询的筛选器。

返回值

[readonly unknown[], TData | undefined][]

查询键与数据组成的数组对。对于尚未缓存数据的查询,其数据为 undefined。

参见

QueryClient#getQueryData

示例

TypeScript
1const data = queryClient.getQueriesData({ queryKey: ['posts'] })

重写自

TypeScript
1QC.getQueriesData

getQueryCache()

TypeScript
1getQueryCache(): QueryCache;

定义于:packages/query-core/src/queryClient.ts:865

返回此客户端所连接的查询缓存。

返回值

QueryCache

QueryCache 实例。

示例

TypeScript
1import { QueryClient } from '@tanstack/query-core'2 3const queryClient = new QueryClient()4const queryCache = queryClient.getQueryCache()5const queries = queryCache.findAll({ queryKey: ['posts'] })

继承自

TypeScript
1QC.getQueryCache

getQueryData()

调用签名

TypeScript
1getQueryData<TData = unknown, TTaggedQueryKey extends readonly unknown[] = readonly unknown[]>(queryKey: TTaggedQueryKey): 2  | InferDataFromTag<TData, TTaggedQueryKey>3  | undefined;

定义于:packages/vue-query/src/queryClient.ts:80

命令式(非响应式)地获取某个 QueryKey 对应的数据。仅应在回调或函数中使用,且仅在必须读取最新数据时(例如执行乐观更新)才适用。

提示:切勿在组件内部使用此函数,因为它不会接收更新。请使用 useQuery 创建一个 QueryObserver,以订阅变更。

类型参数
TData

TData = unknown

TTaggedQueryKey

TTaggedQueryKey extends readonly unknown[] = readonly unknown[]

参数
queryKey

TTaggedQueryKey

待读取查询的查询键。

返回值

| InferDataFromTag<TData, TTaggedQueryKey> | undefined

该查询的缓存数据;若尚无任何具有此键的查询被观察过,则返回 undefined。

参见

QueryClient#getQueriesData

重写自
TypeScript
1QC.getQueryData

调用签名

TypeScript
1getQueryData<TData = unknown>(queryKey: MaybeRefDeep<readonly unknown[]>): TData | undefined;

定义于:packages/vue-query/src/queryClient.ts:87

命令式(非响应式)地获取某个 QueryKey 对应的数据。仅应在回调或函数中使用,且仅在必须读取最新数据时(例如执行乐观更新)才适用。

提示:切勿在组件内部使用此函数,因为它不会接收更新。请使用 useQuery 创建一个 QueryObserver,以订阅变更。

类型参数
TData

TData = unknown

参数
queryKey

MaybeRefDeep<readonly unknown[]>

待读取查询的查询键。

返回值

TData | undefined

该查询的缓存数据;若尚无任何具有此键的查询被观察过,则返回 undefined。

重写自
TypeScript
1QC.getQueryData

getQueryDefaults()

TypeScript
1getQueryDefaults(queryKey: MaybeRefDeep<readonly unknown[]>): OmitKeyof<QueryObserverOptions<any, any, any, any, any>, "queryKey">;

定义于:packages/vue-query/src/queryClient.ts:672

返回已注册的、其查询键(query key)与给定 queryKey 部分匹配的查询的默认选项,注册方式为 QueryClient#setQueryDefaults。若多个已注册的默认选项匹配,则按注册顺序合并。

参数

queryKey

MaybeRefDeep<readonly unknown[]>

用于查找已注册默认选项的查询键。

返回值

OmitKeyof<QueryObserverOptions<any, any, any, any, any>, "queryKey">

所有匹配注册项的合并后默认选项;若无匹配项,则返回空对象。

示例

TypeScript
1const defaultOptions = queryClient.getQueryDefaults(['posts'])

重写自

TypeScript
1QC.getQueryDefaults

getQueryState()

调用签名

TypeScript
1getQueryState<TQueryFnData = unknown, TError = Error, TTaggedQueryKey extends readonly unknown[] = readonly unknown[], TInferredQueryFnData = InferDataFromTag<TQueryFnData, TTaggedQueryKey>, TInferredError = InferErrorFromTag<TError, TTaggedQueryKey>>(queryKey: TTaggedQueryKey): 2  | QueryState<TInferredQueryFnData, TInferredError>3  | undefined;

定义于:packages/vue-query/src/queryClient.ts:189

命令式(非响应式)地获取现有查询的状态。若该查询不存在,则返回 undefined。

类型参数
TQueryFnData

TQueryFnData = unknown

TError

TError = Error

TTaggedQueryKey

TTaggedQueryKey extends readonly unknown[] = readonly unknown[]

TInferredQueryFnData

TInferredQueryFnData = InferDataFromTag<TQueryFnData, TTaggedQueryKey>

TInferredError

TInferredError = InferErrorFromTag<TError, TTaggedQueryKey>

参数
queryKey

TTaggedQueryKey

待读取查询的查询键。

返回值

| QueryState<TInferredQueryFnData, TInferredError> | undefined

该查询的状态;若不存在具有此键的查询,则返回 undefined。

示例
TypeScript
1const state = queryClient.getQueryState(['posts'])2console.log(state?.dataUpdatedAt)
重写自
TypeScript
1QC.getQueryState

调用签名

TypeScript
1getQueryState<TData = unknown, TError = Error>(queryKey: MaybeRefDeep<readonly unknown[]>): 2  | QueryState<TData, TError>3  | undefined;

定义于:packages/vue-query/src/queryClient.ts:198

类型参数
TData

TData = unknown

TError

TError = Error

参数
queryKey

MaybeRefDeep<readonly unknown[]>

返回值

| QueryState<TData, TError> | undefined

重写自
TypeScript
1QC.getQueryState

infiniteQuery()

调用签名

TypeScript
1infiniteQuery<TQueryFnData = unknown, TError = Error, TData = InfiniteData<TQueryFnData, unknown>, TQueryKey extends readonly unknown[] = readonly unknown[], TPageParam = unknown>(options: InfiniteQueryExecuteOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam>): Promise<TData[] extends InfiniteData<TQueryFnData, unknown>[] ? InfiniteData<TQueryFnData, TPageParam> : TData>;

定义于:packages/vue-query/src/queryClient.ts:459

异步方法,用于拉取并缓存无限查询,成功时解析为 InfiniteData 对象,失败时抛出错误。

行为类似于 QueryClient#query,接受相同的选项(不包括 initialPageParam),外加必需的 initialPageParam,以及可选的 pages / getNextPageParam 对,用于从起始位置重新拉取固定数量的页。

此方法替代了已弃用的 fetchInfiniteQuery,并与 { staleTime: 'static' } 结合替代了已弃用的 ensureInfiniteQueryData。

类型参数
TQueryFnData

TQueryFnData = unknown

TError

TError = Error

TData

TData = InfiniteData<TQueryFnData, unknown>

TQueryKey

TQueryKey extends readonly unknown[] = readonly unknown[]

TPageParam

TPageParam = unknown

参数
options

InfiniteQueryExecuteOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam>

无限查询选项,包括 queryKey、queryFn 和 initialPageParam。

返回值

Promise<TData[] extends InfiniteData<TQueryFnData, unknown>[] ? InfiniteData<TQueryFnData, TPageParam> : TData>

一个 Promise,成功时解析为 InfiniteData,或若提供了 select 则解析为其结果;失败时以拉取错误或 select 抛出的错误拒绝。

示例
TypeScript
1try {2  const data = await queryClient.infiniteQuery({ queryKey, queryFn, initialPageParam: 0 })3  console.log(data.pages)4} catch (error) {5  console.log(error)6}
重写自
TypeScript
1QC.infiniteQuery

调用签名

TypeScript
1infiniteQuery<TQueryFnData = unknown, TError = Error, TData = InfiniteData<TQueryFnData, unknown>, TQueryKey extends readonly unknown[] = readonly unknown[], TPageParam = unknown>(options: MaybeRefDeep<InfiniteQueryExecuteOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam>>): Promise<TData[] extends InfiniteData<TQueryFnData, unknown>[] ? InfiniteData<TQueryFnData, TPageParam> : TData>;

定义于:packages/vue-query/src/queryClient.ts:479

异步方法,用于拉取并缓存无限查询,成功时解析为 InfiniteData 对象,失败时抛出错误。

行为类似于 QueryClient#query,接受相同的选项(不包括 initialPageParam),外加必需的 initialPageParam,以及可选的 pages / getNextPageParam 对,用于从起始位置重新拉取固定数量的页。

此方法替代了已弃用的 fetchInfiniteQuery,并与 { staleTime: 'static' } 结合替代了已弃用的 ensureInfiniteQueryData。

类型参数
TQueryFnData

TQueryFnData = unknown

TError

TError = Error

TData

TData = InfiniteData<TQueryFnData, unknown>

TQueryKey

TQueryKey extends readonly unknown[] = readonly unknown[]

TPageParam

TPageParam = unknown

参数
options

MaybeRefDeep<InfiniteQueryExecuteOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam>>

无限查询选项,包括 queryKey、queryFn 和 initialPageParam。

返回值

Promise<TData[] extends InfiniteData<TQueryFnData, unknown>[] ? InfiniteData<TQueryFnData, TPageParam> : TData>

一个 Promise,成功时解析为 InfiniteData,或若提供了 select 则解析为其结果;失败时以拉取错误或 select 抛出的错误拒绝。

重写自
TypeScript
1QC.infiniteQuery

invalidateQueries()

TypeScript
1invalidateQueries<TTaggedQueryKey extends readonly unknown[] = readonly unknown[]>(filters?: 2  | InvalidateQueryFilters<TTaggedQueryKey>3| (() => InvalidateQueryFilters<TTaggedQueryKey>), options?: MaybeRefDeep<InvalidateOptions>): Promise<void>;

定义于:packages/vue-query/src/queryClient.ts:236

将匹配给定筛选器的查询标记为失效。与 QueryClient#removeQueries 不同,失效的查询仍保留在缓存中。

除非 filters.refetchType 为 'none',否则匹配的查询将通过 QueryClient#refetchQueries 重新拉取,优先使用 filters.refetchType,其次使用 filters.type,最后使用 'active'。

类型参数

TTaggedQueryKey

TTaggedQueryKey extends readonly unknown[] = readonly unknown[]

参数

filters?

| InvalidateQueryFilters<TTaggedQueryKey> | (() => InvalidateQueryFilters<TTaggedQueryKey>)

用于选择要使失效的查询的过滤器,以及 refetchType,用以控制之后重新拉取其中哪些查询。若未提供过滤器,则所有查询均被使失效。

options?

MaybeRefDeep<InvalidateOptions>

传递给 QueryClient#refetchQueries,例如 cancelRefetch 和 throwOnError。

返回值

Promise<void>

一个 Promise,当重新拉取操作完成时即解析;若 refetchType 为 'none',则立即解析。

示例

TypeScript
1await queryClient.invalidateQueries({ queryKey: ['posts'], refetchType: 'active' })

覆盖

TypeScript
1QC.invalidateQueries

isFetching()

TypeScript
1isFetching(filters?: MaybeRefDeep<Omit<QueryFilters<readonly unknown[]>, "fetchStatus">>): number;

定义于:packages/vue-query/src/queryClient.ts:68

返回缓存中当前正在拉取的查询数量,可选地匹配一组过滤器。这包括后台拉取、加载新页面以及加载更多无限查询结果。

参数

filters?

MaybeRefDeep<Omit<QueryFilters<readonly unknown[]>, "fetchStatus">> = {}

缩小需计数的拉取中查询的范围。若未提供过滤器,则所有拉取中的查询均被计数。

返回值

number

其 fetchStatus 为 'fetching' 的匹配查询的数量。

示例

TypeScript
1if (queryClient.isFetching()) {2  console.log('At least one query is fetching!')3}

覆盖

TypeScript
1QC.isFetching

isMutating()

TypeScript
1isMutating(filters?: MaybeRefDeep<Omit<MutationFilters<unknown, Error, unknown, unknown>, "status">>): number;

定义于:packages/vue-query/src/queryClient.ts:74

返回缓存中当前处于等待中状态的修改数量,可选地匹配一组过滤器。

参数

filters?

MaybeRefDeep<Omit<MutationFilters<unknown, Error, unknown, unknown>, "status">> = {}

缩小需计数的等待中修改的范围。若未提供过滤器,则所有等待中的修改均被计数。

返回值

number

其 status 为 'pending' 的匹配修改的数量。

示例

TypeScript
1if (queryClient.isMutating()) {2  console.log('At least one mutation is pending!')3}

覆盖

TypeScript
1QC.isMutating

mount()

TypeScript
1mount(): void;

定义于:packages/query-core/src/queryClient.ts:103

由框架适配器的 QueryClientProvider 等价物在挂载时调用,以开始监听焦点/在线事件并恢复已暂停的修改。通过内部挂载计数实现引用计数,因此共享同一 QueryClient 的嵌套或多个 Provider 不会在最后一个卸载前拆除共享监听器。

返回值

void

继承自

TypeScript
1QC.mount

prefetchInfiniteQuery()

调用签名

TypeScript
1prefetchInfiniteQuery<TQueryFnData, TError = Error, TData = TQueryFnData, TQueryKey extends readonly unknown[] = readonly unknown[], TPageParam = unknown>(options: FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam>): Promise<void>;

定义于:packages/vue-query/src/queryClient.ts:597

像 QueryClient#fetchInfiniteQuery 那样拉取并缓存一个无限查询,但忽略结果及任何错误。

类型参数
TQueryFnData

TQueryFnData

TError

TError = Error

TData

TData = TQueryFnData

TQueryKey

TQueryKey extends readonly unknown[] = readonly unknown[]

TPageParam

TPageParam = unknown

参数
options

FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam>

无限查询选项,包括 queryKey、queryFn 和 initialPageParam。

返回值

Promise<void>

一个 Promise,在拉取操作完成时解析。它永远不会拒绝。

已弃用

请改用 void queryClient.infiniteQuery(options)。你可以使用 .catch(noop) 吞掉错误。该方法将在下一个主版本中移除。

覆盖
TypeScript
1QC.prefetchInfiniteQuery

调用签名

TypeScript
1prefetchInfiniteQuery<TQueryFnData, TError = Error, TData = TQueryFnData, TQueryKey extends readonly unknown[] = readonly unknown[], TPageParam = unknown>(options: MaybeRefDeep<FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam>>): Promise<void>;

定义于:packages/vue-query/src/queryClient.ts:616

像 QueryClient#fetchInfiniteQuery 那样拉取并缓存一个无限查询,但忽略结果及任何错误。

类型参数
TQueryFnData

TQueryFnData

TError

TError = Error

TData

TData = TQueryFnData

TQueryKey

TQueryKey extends readonly unknown[] = readonly unknown[]

TPageParam

TPageParam = unknown

参数
options

MaybeRefDeep<FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam>>

无限查询选项,包括 queryKey、queryFn 和 initialPageParam。

返回值

Promise<void>

一个 Promise,在拉取操作完成时解析。它永远不会拒绝。

已弃用

请改用 void queryClient.infiniteQuery(options)。你可以使用 .catch(noop) 吞掉错误。该方法将在下一个主版本中移除。

覆盖
TypeScript
1QC.prefetchInfiniteQuery

prefetchQuery()

调用签名

TypeScript
1prefetchQuery<TQueryFnData = unknown, TError = Error, TData = TQueryFnData, TQueryKey extends readonly unknown[] = readonly unknown[]>(options: FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>): Promise<void>;

定义于:packages/vue-query/src/queryClient.ts:421

像 QueryClient#fetchQuery 那样拉取并缓存一个查询,但忽略结果及任何错误。

类型参数
TQueryFnData

TQueryFnData = unknown

TError

TError = Error

TData

TData = TQueryFnData

TQueryKey

TQueryKey extends readonly unknown[] = readonly unknown[]

参数
options

FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>

查询选项,包括 queryKey 和 queryFn(若查询需要拉取则使用)。

返回值

Promise<void>

一个 Promise,在拉取操作完成时解析。它永远不会拒绝。

已弃用

请改用 queryClient.query(options)。你可以使用 .catch(noop) 吞掉错误。该方法将在下一个主版本中移除。

覆盖
TypeScript
1QC.prefetchQuery

调用签名

TypeScript
1prefetchQuery<TQueryFnData = unknown, TError = Error, TData = TQueryFnData, TQueryKey extends readonly unknown[] = readonly unknown[]>(options: MaybeRefDeep<FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey, never>>): Promise<void>;

定义于:packages/vue-query/src/queryClient.ts:433

像 QueryClient#fetchQuery 那样拉取并缓存一个查询,但忽略结果及任何错误。

类型参数
TQueryFnData

TQueryFnData = unknown

TError

TError = Error

TData

TData = TQueryFnData

TQueryKey

TQueryKey extends readonly unknown[] = readonly unknown[]

参数
options

MaybeRefDeep<FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey, never>>

查询选项,包括 queryKey 和 queryFn(若查询需要拉取则使用)。

返回值

Promise<void>

一个 Promise,在拉取操作完成时解析。它永远不会拒绝。

已弃用

请改用 queryClient.query(options)。你可以使用 .catch(noop) 吞掉错误。该方法将在下一个主版本中移除。

覆盖
TypeScript
1QC.prefetchQuery

query()

调用签名

TypeScript
1query<TQueryFnData, TError = Error, TData = TQueryFnData, TQueryData = TQueryFnData, TQueryKey extends readonly unknown[] = readonly unknown[], TPageParam = never>(options: QueryExecuteOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey, TPageParam>): Promise<TData>;

定义于:packages/vue-query/src/queryClient.ts:292

异步方法,用于拉取并缓存一个查询,成功时解析为数据,失败时抛出错误。

如果查询已存在于缓存中,且其数据未过期(依据所给的 staleTime),则直接返回缓存数据,不执行拉取。否则,将执行拉取,且 Promise 在拉取操作完成时解析。若提供了 select 函数,则无论数据来自缓存还是新拉取,均会在返回前应用该函数处理。

与响应式观察者不同,此处默认禁用重试(retry: false),除非显式配置;因为没有组件可捕获抛出的错误并通过重新渲染触发重试。

所接受的选项为 QueryObserverOptions,但排除了仅对响应式观察者有意义的字段 —— enabled、refetchInterval、refetchIntervalInBackground、refetchOnWindowFocus、refetchOnReconnect、refetchOnMount、retryOnMount、notifyOnChangeProps、throwOnError、suspense 和 placeholderData 不属于该方法的选项。

该方法替代了已弃用的 fetchQuery,并与 { staleTime: 'static' } 一起替代了已弃用的 ensureQueryData。

类型参数
TQueryFnData

TQueryFnData

TError

TError = Error

TData

TData = TQueryFnData

TQueryData

TQueryData = TQueryFnData

TQueryKey

TQueryKey extends readonly unknown[] = readonly unknown[]

TPageParam

TPageParam = never

参数
options

QueryExecuteOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey, TPageParam>

查询选项,包括 queryKey 和 queryFn(若查询需要拉取则使用)。

返回值

Promise<TData>

一个 Promise,成功时解析为数据,或解析为 select 的执行结果(若已提供)。它会因拉取错误或 select 抛出的错误而拒绝。

示例
TypeScript
1try {2  const data = await queryClient.query({ queryKey, queryFn, staleTime: 10000 })3} catch (error) {4  console.log(error)5}
覆盖
TypeScript
1QC.query

调用签名

TypeScript
1query<TQueryFnData, TError = Error, TData = TQueryFnData, TQueryData = TQueryFnData, TQueryKey extends readonly unknown[] = readonly unknown[], TPageParam = never>(options: MaybeRefDeep<QueryExecuteOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey, TPageParam>>): Promise<TData>;

定义于:packages/vue-query/src/queryClient.ts:310

异步方法,用于拉取并缓存一个查询,成功时解析为数据,失败时抛出错误。

如果查询已存在于缓存中,且其数据未过期(依据所给的 staleTime),则直接返回缓存数据,不执行拉取。否则,将执行拉取,且 Promise 在拉取操作完成时解析。若提供了 select 函数,则无论数据来自缓存还是新拉取,均会在返回前应用该函数处理。

与响应式观察者不同,此处默认禁用重试(retry: false),除非显式配置;因为没有组件可捕获抛出的错误并通过重新渲染触发重试。

所接受的选项为 QueryObserverOptions,但排除了仅对响应式观察者有意义的字段 —- enabled、refetchInterval、refetchIntervalInBackground、refetchOnWindowFocus、refetchOnReconnect、refetchOnMount、retryOnMount、notifyOnChangeProps、throwOnError、suspense 和 placeholderData 不属于该方法的选项。

该方法替代了已弃用的 fetchQuery,并与 { staleTime: 'static' } 一起替代了已弃用的 ensureQueryData。

类型参数
TQueryFnData

TQueryFnData

TError

TError = Error

TData

TData = TQueryFnData

TQueryData

TQueryData = TQueryFnData

TQueryKey

TQueryKey extends readonly unknown[] = readonly unknown[]

TPageParam

TPageParam = never

参数
options

MaybeRefDeep<QueryExecuteOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey, TPageParam>>

查询选项,包括 queryKey 和 queryFn(若查询需要拉取则使用)。

返回值

Promise<TData>

一个 Promise,成功时解析为数据,或解析为 select 的执行结果(若已提供)。它会因拉取错误或 select 抛出的错误而拒绝。

覆盖
TypeScript
1QC.query

refetchQueries()

TypeScript
1refetchQueries<TTaggedQueryKey extends readonly unknown[] = readonly unknown[]>(filters?: RefetchQueryFilters<TTaggedQueryKey>, options?: MaybeRefDeep<RefetchOptions>): Promise<void>;

定义于:packages/vue-query/src/queryClient.ts:276

根据给定的过滤器重新拉取匹配的查询,无论其是否过期。若未提供过滤器,则缓存中的所有查询都会被重新拉取。已禁用的查询,或静态查询(仅包含具有静态 staleTime 的观察者)永远不会被重新拉取。

默认情况下(cancelRefetch: true),当前正在运行的拉取操作会在新拉取开始前被取消。返回的 Promise 不会因单个查询失败而拒绝,除非 throwOnError 为 true。

初始时已暂停的拉取操作不会延迟返回的 Promise。即使 throwOnError 为 true,其后续发生的错误仍会被处理。

类型参数

TTaggedQueryKey

TTaggedQueryKey extends readonly unknown[] = readonly unknown[]

参数

filters?

RefetchQueryFilters<TTaggedQueryKey>

用于选择要重新拉取的查询的过滤器。若不提供过滤器,则缓存中所有查询均被包含。

options?

MaybeRefDeep<RefetchOptions>

将 cancelRefetch 设为 false 可保留正在运行的拉取操作而非取消它;将 throwOnError 设为 true 可在最初未暂停的重新拉取失败时使 Promise 拒绝。

返回值

Promise<void>

一个 Promise,当所有最初未暂停的匹配查询完成重新拉取后即解析。

示例

TypeScript
1// refetch all active queries partially matching a query key:2await queryClient.refetchQueries({ queryKey: ['posts'], type: 'active' })

覆盖

TypeScript
1QC.refetchQueries

removeQueries()

TypeScript
1removeQueries<TTaggedQueryKey extends readonly unknown[] = readonly unknown[]>(filters?: QueryFilters<TTaggedQueryKey>): void;

定义于:packages/vue-query/src/queryClient.ts:207

移除缓存中匹配给定过滤器的所有查询。与 QueryClient#invalidateQueries 或 QueryClient#refetchQueries 不同,此方法从缓存中移除匹配的查询,而非重新拉取它们。若不提供过滤器,则缓存中所有查询均被移除。

类型参数

TTaggedQueryKey

TTaggedQueryKey extends readonly unknown[] = readonly unknown[]

参数

filters?

QueryFilters<TTaggedQueryKey>

用于选择要移除的查询的过滤器。若不提供过滤器,则所有查询均被移除。

返回值

void

示例

TypeScript
1queryClient.removeQueries({ queryKey: ['posts'], exact: true })

覆盖

TypeScript
1QC.removeQueries

resetQueries()

TypeScript
1resetQueries<TTaggedQueryKey extends readonly unknown[] = readonly unknown[]>(filters?: QueryFilters<TTaggedQueryKey>, options?: MaybeRefDeep<ResetOptions>): Promise<void>;

定义于:packages/vue-query/src/queryClient.ts:214

将匹配给定过滤器的查询重置为其初始状态(例如任何 initialData),并通知订阅者,而非将其从缓存中移除。匹配集合中的活跃查询随后会被重新拉取,且返回的 Promise 在该重新拉取完成后即解析。

类型参数

TTaggedQueryKey

TTaggedQueryKey extends readonly unknown[] = readonly unknown[]

参数

filters?

QueryFilters<TTaggedQueryKey>

用于选择要重置的查询的过滤器。若不提供过滤器,则所有查询均被重置。

options?

MaybeRefDeep<ResetOptions>

传递给匹配的活跃查询的重新拉取操作,例如 cancelRefetch 和 throwOnError。

返回值

Promise<void>

一个 Promise,当匹配的活跃查询完成重新拉取后即解析。

示例

TypeScript
1await queryClient.resetQueries({ queryKey: ['posts'], exact: true })

覆盖

TypeScript
1QC.resetQueries

resumePausedMutations()

TypeScript
1resumePausedMutations(): Promise<unknown>;

定义于:packages/query-core/src/queryClient.ts:846

恢复因网络连接丢失而暂停的修改操作。若客户端当前处于离线状态,则此方法不执行任何操作(立即解析)。

返回值

Promise<unknown>

一个 Promise,当所有已恢复的修改操作完成后即解析。

示例

TypeScript
1import { QueryClient } from '@tanstack/query-core'2 3const queryClient = new QueryClient()4await queryClient.resumePausedMutations()

继承自

TypeScript
1QC.resumePausedMutations

setDefaultOptions()

TypeScript
1setDefaultOptions(options: MaybeRefDeep<DefaultOptions<Error>>): void;

定义于:packages/vue-query/src/queryClient.ts:654

动态设置此客户端的默认选项,覆盖此前已定义的任何默认选项。

参数

options

MaybeRefDeep<DefaultOptions<Error>>

查询和修改操作的新默认选项。

返回值

void

参见

QueryClient#getDefaultOptions

示例

TypeScript
1import { QueryClient } from '@tanstack/query-core'2 3const queryClient = new QueryClient()4queryClient.setDefaultOptions({5  queries: {6    staleTime: Infinity,7  },8})

覆盖

TypeScript
1QC.setDefaultOptions

setMutationDefaults()

TypeScript
1setMutationDefaults<TData = unknown, TError = Error, TVariables = void, TOnMutateResult = unknown>(mutationKey: MaybeRefDeep<readonly unknown[]>, options: MaybeRefDeep<MutationObserverOptions<TData, TError, TVariables, TOnMutateResult>>): void;

定义于:packages/vue-query/src/queryClient.ts:678

为修改键部分匹配给定 mutationKey 的修改操作设置默认选项。与 QueryClient#setQueryDefaults 类似,当多个已注册的默认选项匹配同一修改键时,注册顺序会影响合并结果。

类型参数

TData

TData = unknown

TError

TError = Error

TVariables

TVariables = void

TOnMutateResult

TOnMutateResult = unknown

参数

mutationKey

MaybeRefDeep<readonly unknown[]>

用于部分匹配修改键的修改键。

options

MaybeRefDeep<MutationObserverOptions<TData, TError, TVariables, TOnMutateResult>>

应用于匹配修改操作的默认选项。

返回值

void

参见

QueryClient#getMutationDefaults

示例

TypeScript
1queryClient.setMutationDefaults(['addPost'], { mutationFn: addPost })

覆盖

TypeScript
1QC.setMutationDefaults

setQueriesData()

TypeScript
1setQueriesData<TData>(2   filters: MaybeRefDeep<QueryFilters<readonly unknown[]>>, 3   updater: Updater<TData | undefined, TData | undefined>, 4   options?: MaybeRefDeep<SetDataOptions>5): [readonly unknown[], TData | undefined][];

定义于:packages/vue-query/src/queryClient.ts:177

一种同步方式,可立即批量更新多个查询的缓存数据,支持通过过滤器或查询键的部分匹配来实现。仅更新已存在且匹配给定过滤器的查询;不会创建新的缓存条目。内部对每个匹配查询调用 QueryClient#setQueryData。

类型参数

TData

TData

参数

filters

MaybeRefDeep<QueryFilters<readonly unknown[]>>

用于选择要更新的现有查询的过滤器。

updater

Updater<TData | undefined, TData | undefined>

新数据本身,或一个接收每个匹配查询当前数据(可能为 undefined)并返回新数据的函数。

options?

MaybeRefDeep<SetDataOptions> = {}

设置 updatedAt 以覆盖所写入数据的时间戳。

返回值

[readonly unknown[], TData | undefined][]

每个匹配查询对应一个 [queryKey, data] 元组,其结构及 undefined 处理逻辑与 QueryClient#setQueryData 一致。

示例

TypeScript
1queryClient.setQueriesData({ queryKey: ['posts'] }, (oldPosts) =>2  oldPosts ? oldPosts.filter((post) => post.id !== deletedId) : oldPosts,3)

覆盖

TypeScript
1QC.setQueriesData

setQueryData()

调用签名

TypeScript
1setQueryData<TQueryFnData = unknown, TTaggedQueryKey extends readonly unknown[] = readonly unknown[], TInferredQueryFnData = InferDataFromTag<TQueryFnData, TTaggedQueryKey>>(2   queryKey: TTaggedQueryKey, 3   updater: Updater<NoInfer<TInferredQueryFnData> | undefined, NoInfer<TInferredQueryFnData> | undefined>, 4   options?: MaybeRefDeep<SetDataOptions>5): NoInfer<TInferredQueryFnData> | undefined;

定义于:packages/vue-query/src/queryClient.ts:147

一种同步方式,可立即更新某个查询的缓存数据。若更新器(或传入的值)解析为 undefined,则缓存保持不变且不创建新查询;否则,若该查询尚不存在,则会创建它。如需通过查询键的部分匹配一次性更新多个查询,请改用 QueryClient#setQueriesData。

更新操作必须以不可变方式进行:请勿就地修改 oldData 或此前通过 QueryClient#getQueryData 获取的数据。

类型参数
TQueryFnData

TQueryFnData = unknown

TTaggedQueryKey

TTaggedQueryKey extends readonly unknown[] = readonly unknown[]

TInferredQueryFnData

TInferredQueryFnData = InferDataFromTag<TQueryFnData, TTaggedQueryKey>

参数
queryKey

TTaggedQueryKey

要设置数据的查询键。

updater

Updater<NoInfer<TInferredQueryFnData> | undefined, NoInfer<TInferredQueryFnData> | undefined>

新数据本身,或一个接收当前数据(可能为 undefined)并返回新数据的函数。

options?

MaybeRefDeep<SetDataOptions>

设置 updatedAt 以覆盖所写入数据的时间戳。

返回值

NoInfer<TInferredQueryFnData> | undefined

实际写入的数据;若更新器返回 undefined,则返回 undefined — 此时写入被跳过,缓存保持不变。

示例
TypeScript
1queryClient.setQueryData(['posts'], newPosts)2 3// Or, using an updater function that receives the current data:4queryClient.setQueryData(['posts'], (oldPosts) => [...oldPosts, newPost])
覆盖
TypeScript
1QC.setQueryData

调用签名

TypeScript
1setQueryData<TQueryFnData, TData = NoUnknown<TQueryFnData>>(2   queryKey: MaybeRefDeep<readonly unknown[]>, 3   updater: Updater<NoInfer<TData> | undefined, NoInfer<TData> | undefined>, 4   options?: MaybeRefDeep<SetDataOptions>5): NoInfer<TData> | undefined;

定义于:packages/vue-query/src/queryClient.ts:160

一种同步方式,可立即更新某个查询的缓存数据。若更新器(或传入的值)解析为 undefined,则缓存保持不变且不创建新查询;否则,若该查询尚不存在,则会创建它。如需通过查询键的部分匹配一次性更新多个查询,请改用 QueryClient#setQueriesData。

更新操作必须以不可变方式进行:请勿就地修改 oldData 或此前通过 QueryClient#getQueryData 获取的数据。

类型参数
TQueryFnData

TQueryFnData

TData

TData = NoUnknown<TQueryFnData>

参数
queryKey

MaybeRefDeep<readonly unknown[]>

要设置数据的查询键。

updater

Updater<NoInfer<TData> | undefined, NoInfer<TData> | undefined>

新数据本身,或一个接收当前数据(可能为 undefined)并返回新数据的函数。

options?

MaybeRefDeep<SetDataOptions>

设置 updatedAt 以覆盖所写入数据的时间戳。

返回值

NoInfer<TData> | undefined

实际写入的数据;若更新器返回 undefined,则返回 undefined — 此时写入被跳过,缓存保持不变。

覆盖
TypeScript
1QC.setQueryData

setQueryDefaults()

TypeScript
1setQueryDefaults<TQueryFnData = unknown, TError = Error, TData = TQueryFnData, TQueryData = TQueryFnData>(queryKey: MaybeRefDeep<readonly unknown[]>, options: MaybeRefDeep<Omit<UseQueryOptions<TQueryFnData, TError, TData, TQueryData>, "queryKey">>): void;

定义于:packages/vue-query/src/queryClient.ts:658

为查询键部分匹配给定 queryKey 的查询设置默认选项。

若多个已注册的查询默认选项匹配某一查询键,则它们将按注册顺序由 QueryClient#getQueryDefaults 合并,因此应从最通用的键到最具体的键依次注册默认选项 — 更具体的默认选项应在更通用的之后注册,以确保其优先级更高。

类型参数

TQueryFnData

TQueryFnData = unknown

TError

TError = Error

TData

TData = TQueryFnData

TQueryData

TQueryData = TQueryFnData

参数

queryKey

MaybeRefDeep<readonly unknown[]>

用于对查询键进行部分匹配的查询键。

options

MaybeRefDeep<Omit<UseQueryOptions<TQueryFnData, TError, TData, TQueryData>, "queryKey">>

应用于匹配查询的默认选项。

返回值

void

示例

TypeScript
1queryClient.setQueryDefaults(['posts'], { queryFn: fetchPosts })2 3await queryClient.query({ queryKey: ['posts'] })

覆盖

TypeScript
1QC.setQueryDefaults

unmount()

TypeScript
1unmount(): void;

定义于:packages/query-core/src/queryClient.ts:126

QueryClient#mount 的反向操作——由框架适配器在卸载(unmount)其 QueryClientProvider 等价物时调用。仅当挂载计数(mount count)回到 0 时,才销毁焦点(focus)和网络在线(online)监听器。

返回值

void

继承自

TypeScript
1QC.unmount

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

译自上游 59d11de