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
QueryClient
待恢复缓存的查询客户端。
dehydratedState
Partial<DehydratedState>
脱水状态,例如由服务端上的 dehydrate 生成。
dehydratedState 属性
基于 DehydratedState 构建。参见上方类型定义了解其变更内容。
options?
defaultOptions 将合并至每个恢复的查询和修改中(叠加在客户端的 defaultOptions.hydrate 之上),且 deserializeData 用于逆转 serializeData。
options 属性
返回值
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)