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