hydrate
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
待还原缓存的目标客户端。
dehydratedState
Partial<DehydratedState>
脱水状态,例如由服务端上的 dehydrate 生成。
dehydratedState 属性
基于 DehydratedState 构建。参见上方类型定义以了解其具体变更内容。
options?
将与每个还原的查询和修改(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)