useHydration
サーバーからデータを設定および受信するためのハイドレーションサイクルを完全に制御します。
これは高度なコンポーザブルであり、主にプラグイン内での使用を目的としており、主にNuxtモジュールによって使用されます。
useHydration
は、SSR中の状態の同期と復元を確実にするために設計されています。NuxtでSSRに対応したグローバルなリアクティブ状態を作成する必要がある場合は、useState
が推奨されます。
useHydration
は、HTTPリクエストが行われるたびにサーバー側でデータを設定し、そのデータをクライアント側で受信する方法を提供する組み込みのコンポーザブルです。このようにして、useHydration
はハイドレーションサイクルを完全に制御することを可能にします。
サーバー上でget
関数から返されるデータは、useHydration
への最初のパラメータとして提供されたユニークなキーの下でnuxtApp.payload
に保存されます。ハイドレーション中に、このデータはクライアントで取得され、冗長な計算やAPIコールを防ぎます。
使用法
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)
})
}
})
型
signature
useHydration <T> (key: string, get: () => T, set: (value: T) => void) => void
パラメータ
key
: Nuxtアプリケーション内のデータを識別するユニークなキー。get
: サーバー上でのみ実行される関数(SSRレンダリングが完了したときに呼び出される)で、初期値を設定します。set
: クライアント上でのみ実行される関数(初期Vueインスタンスが作成されたときに呼び出される)で、データを受信します。
※このページは Nuxt.js 公式ドキュメントの翻訳ページ(非公式)です。
公式ドキュメントの該当ページはこちら:
https://nuxt.com/docs/3.x/api/composables/use-hydration