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

hydrate

更新于 2026-11-02 Svelte 查看英文原文 ↗
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

将与每个还原的查询和修改(mutations)合并的 defaultOptions(叠加在客户端的 defaultOptions.hydrate 之上),以及用于逆向 serializeData 的 deserializeData。

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 文档(Svelte 版)的非官方中文翻译,原文由上游团队维护,遵循 MIT 许可。 译文如有偏差,以英文原文为准。

译自上游 59d11de