nuxt logo

Tradução da Documentação (Não Oficial)

Hooks de Ciclo de Vida

O Nuxt fornece um sistema de hooks poderoso para expandir quase todos os aspectos usando hooks.

O sistema de hooks é alimentado por unjs/hookable.

Hooks do Nuxt (Tempo de Build)

Esses hooks estão disponíveis para Módulos Nuxt e contexto de build.

Dentro de nuxt.config.ts

nuxt.config.ts
export default defineNuxtConfig({
  hooks: {
    close: () => { }
  }
})

Dentro de Módulos Nuxt

import { defineNuxtModule } from '@nuxt/kit'

export default defineNuxtModule({
  setup (options, nuxt) {
    nuxt.hook('close', async () => { })
  }
})
Veja também api > advanced > hooks#nuxt-hooks-build-time

Hooks de Aplicação (Tempo de Execução)

Os hooks de aplicação podem ser usados principalmente por Plugins Nuxt para se conectar ao ciclo de vida de renderização, mas também podem ser usados em composables do Vue.

plugins/test.ts
export default defineNuxtPlugin((nuxtApp) => {
  nuxtApp.hook('page:start', () => {
    /* seu código vai aqui */
  })
})
Veja também api > advanced > hooks#app-hooks-runtime

Hooks de Servidor (Tempo de Execução)

Esses hooks estão disponíveis para plugins de servidor para se conectar ao comportamento de tempo de execução do Nitro.

~/server/plugins/test.ts
export default defineNitroPlugin((nitroApp) => {
  nitroApp.hooks.hook('render:html', (html, { event }) => {
    console.log('render:html', html)
    html.bodyAppend.push('<hr>Adicionado por plugin personalizado')
  })

  nitroApp.hooks.hook('render:response', (response, { event }) => {
    console.log('render:response', response)
  })
})
Veja também api > advanced > hooks#nitro-app-hooks-runtime-server-side

Hooks Adicionais

Saiba mais sobre como criar hooks personalizados na seção de Eventos.