useHydration

源文件
允许完全控制水合周期,从而从服务器端设置和接收数据。

useHydration 是一个内置的组合式函数,它提供了一种在每次发起新的 HTTP 请求时在服务器端设置数据,并在客户端接收该数据的方法。通过这种方式,useHydration 允许你完全控制水合周期。

这是一个高级组合式函数,主要设计用于插件中,通常由 Nuxt 模块使用。
useHydration 旨在确保在 SSR 期间的状态同步与恢复。如果你需要在 Nuxt 中创建一个对 SSR 友好的全局响应式状态,推荐使用 useState

使用

从服务器端 get 函数返回的数据会存储在 nuxtApp.payload 中,其键名为传递给 useHydration 的第一个参数所提供的唯一键。在水合过程中,客户端会检索该数据,从而防止冗余的计算或 API 调用。

export default defineNuxtPlugin((nuxtApp) => {
  const myStore = new MyStore()

  useHydration(
    'myStoreState',
    () => myStore.getState(),
    data => myStore.setState(data),
  )
})

类型

签名
export function useHydration<T> (key: string, get: () => T, set: (value: T) => void): void

参数

参数类型描述
keystring用于标识 Nuxt 应用中数据的唯一键。
get() => T一个仅在服务器端执行的函数(在 SSR 渲染完成时调用),用于设置初始值。
set(value: T) => void一个仅在客户端执行的函数(在初始 Vue 实例创建时调用),用于接收数据。

返回值

此组合式函数不返回任何值。