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

hydrate

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

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

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

参数

client

QueryClient

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

dehydratedState

Partial<DehydratedState>

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

dehydratedState 属性

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

options?

HydrateOptions

defaultOptions 将合并至每个恢复的查询与修改(覆盖客户端的 defaultOptions.hydrate),并用于逆转 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 文档(Lit 版)的非官方中文翻译,原文由上游团队维护,遵循 MIT 许可。 译文如有偏差,以英文原文为准。

译自上游 59d11de