useHydration
允许对 hydration 周期进行完全控制,以便从服务器设置和接收数据。
Maschinelle Übersetzung ·0 % geprüft
useHydration 是一个内置的可组合函数,提供了一种在每次发起新的 HTTP 请求时在服务器端设置数据,并在客户端接收这些数据的方法。通过这种方式,useHydration 让你能够完全控制水合周期。
这是一个高级的 composable,主要用于插件内,并且大多由 Nuxt 模块使用。
useHydration 旨在确保 SSR 期间的状态同步与恢复。如果你需要在 Nuxt 中创建全局响应式状态,且该状态兼容 SSR,建议使用 useState。用法
服务器上 get 函数返回的数据会根据作为 useHydration 第一个参数提供的唯一键,存储在 nuxtApp.payload 中。在水合过程中,这些数据会在客户端被检索,从而避免重复计算或 API 调用。
export default defineNuxtPlugin((nuxtApp) => {
const myStore = new MyStore()
useHydration(
'myStoreState',
() => myStore.getState(),
data => myStore.setState(data),
)
})export default defineNuxtPlugin((nuxtApp) => {
const myStore = new MyStore()
if (import.meta.server) {
nuxt.hooks.hook('app:rendered', () => {
nuxtApp.payload.myStoreState = myStore.getState()
})
}
if (import.meta.client) {
nuxt.hooks.hook('app:created', () => {
myStore.setState(nuxtApp.payload.myStoreState)
})
}
})类型
Signatur
export function useHydration<T> (key: string, get: () => T, set: (value: T) => void): void参数
| 参数 | 类型 | 描述 |
|---|---|---|
key | string | 唯一键,用于标识 Nuxt 应用中的数据。 |
get | () => T | 仅在服务器上执行的函数(在 SSR 渲染完成时调用),用于设置初始值。 |
set | (value: T) => void | 仅在客户端执行的函数(在初始 Vue 实例创建时调用),用于接收数据。 |
返回值
此可组合项不返回任何值。
Was this helpful?