nuxt logo

문서 번역(비공식)

useHydration

서버로부터 데이터를 설정하고 수신하기 위해 수화 사이클을 완전히 제어할 수 있습니다.

이것은 주로 Nuxt 모듈에서 사용되는 플러그인 내에서 사용하도록 설계된 고급 컴포저블입니다.

useHydrationSSR 동안 상태 동기화 및 복원을 보장하도록 설계되었습니다. 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 인스턴스가 생성될 때 데이터를 수신합니다.