useHydration
Permite controle total do ciclo de hidratação para definir e receber dados do servidor.
Este é um composable avançado, projetado principalmente para uso dentro de plugins, sendo usado principalmente por módulos Nuxt.
useHydration
é projetado para garantir a sincronização e restauração do estado durante o SSR. Se você precisa criar um estado reativo global que seja compatível com SSR no Nuxt, useState
é a escolha recomendada.
useHydration
é um composable embutido que fornece uma maneira de definir dados no lado do servidor toda vez que uma nova solicitação HTTP é feita e receber esses dados no lado do cliente. Dessa forma, useHydration
permite que você tenha controle total do ciclo de hidratação.
Os dados retornados pela função get
no servidor são armazenados em nuxtApp.payload
sob a chave única fornecida como o primeiro parâmetro para useHydration
. Durante a hidratação, esses dados são então recuperados no cliente, evitando cálculos redundantes ou chamadas de API.
Uso
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)
})
}
})
Tipo
useHydration <T> (key: string, get: () => T, set: (value: T) => void) => void
Parâmetros
key
: Uma chave única que identifica os dados na sua aplicação Nuxt.get
: Uma função executada apenas no servidor (chamada quando a renderização SSR é concluída) para definir o valor inicial.set
: Uma função executada apenas no cliente (chamada quando a instância inicial do Vue é criada) para receber os dados.
※Esta página é uma tradução não oficial da documentação oficial do Nuxt.js.
A página correspondente na documentação oficial está aqui:
https://nuxt.com/docs/3.x/api/composables/use-hydration