nuxt logo

ドキュメント翻訳

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インスタンスが作成されたときに呼び出される)で、データを受信します。