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

useHydrate

更新于 2026-11-02 Svelte 查看英文原文 ↗
TypeScript
1function useHydrate(2   state?: unknown, 3   options?: HydrateOptions, 4   queryClient?: QueryClient5): void;

定义于:packages/svelte-query/src/useHydrate.ts:31

将先前脱水(dehydrate)的 state 添加到 queryClient 中(来自最近的上下文,或显式传入的 queryClient)。如果客户端已包含数据,新查询会基于更新时间戳智能合并。HydrationBoundary 封装了此功能 — 仅当你需要从自己的组件中执行注水时,才直接使用它。

参数

state?

unknown

要注入缓存的脱水状态,由 dehydrate 生成。

options?

HydrateOptions

HydrateOptions 类型,用于控制注水行为。

options 属性

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

queryClient?

QueryClient

使用此参数可指定自定义 QueryClient;否则将使用最近上下文中的 QueryClient。

返回值

void

示例

服务端预取的数据通过 dehydrate 传递给客户端 — dehydratedState 通常来自一个服务端 load 函数,该函数使用 queryClient.query 预取数据并调用 dehydrate(queryClient):

svelte
1<script lang="ts">2  import { HydrationBoundary } from '@tanstack/svelte-query'3  import type { DehydratedState } from '@tanstack/svelte-query'4  import Posts from './Posts.svelte'5 6  let { dehydratedState }: { dehydratedState: DehydratedState } = $props()7</script>8 9<HydrationBoundary state={dehydratedState}>10  <Posts />11</HydrationBoundary>

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

译自上游 59d11de