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

hydrate

更新于 2026-11-02 Vue 查看英文原文 ↗
TypeScript
1function hydrate(2   client: QueryClient, 3   dehydratedState: Partial<DehydratedState>, 4   options?: HydrateOptions5): void;

定义于:packages/query-core/src/hydration.ts:306

将 DehydratedState(由 dehydrate 生成)恢复到 QueryClient 的缓存中,通常用于以服务端已拉取的数据(server state)为客户端提供初始数据。mutations 和 queries 在 dehydratedState 上均为可选。尚未存在于缓存中的查询会从脱水快照构建;已存在的查询仅在脱水数据比当前缓存数据更新时才会被更新。新构建的查询其 fetchStatus 将重置为 'idle',从而避免因注水而卡在拉取状态。若某个脱水查询仍保留有进行中的 promise,则通过 query.fetch() 恢复(复用该 promise 作为 initialPromise),而非重新调用 queryFn。

参数

client

QueryClient

待恢复缓存的查询客户端。

dehydratedState

Partial<DehydratedState>

脱水状态,例如由服务端上的 dehydrate 生成。

dehydratedState 属性

基于 DehydratedState 构建。参见上方类型定义了解其变更内容。

options?

HydrateOptions

defaultOptions 将合并至每个恢复的查询和修改中(叠加在客户端的 defaultOptions.hydrate 之上),且 deserializeData 用于逆转 serializeData。

options 属性

属性 类型 描述
defaultOptions? object 应用于从脱水状态恢复的查询和修改的选项。
defaultOptions.deserializeData? TransformerFn 在查询的 data 从脱水状态读取后对其进行转换,以逆转 serializeData。
defaultOptions.mutations? MutationOptions<unknown, Error, unknown, unknown> 合并至每个从脱水状态恢复的修改中的默认选项。
defaultOptions.queries? QueryOptions<unknown, Error, unknown, readonly unknown[], never> 合并至每个从脱水状态恢复的查询中的默认选项。

返回值

void

示例

TypeScript
1// dehydratedState was produced by `dehydrate` on the server2// and sent to the client, e.g. embedded in server-rendered markup.3const queryClient = new QueryClient()4 5hydrate(queryClient, dehydratedState)

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

译自上游 59d11de