生命周期钩子 Lifecycle Hooks

Nuxt 提供了强大的 hooking 系统,可以使用 hooks 扩展几乎所有方面。

App Hooks (运行时)

检查应用程序源代码 以获取所有可用的挂钩。

钩子参数环境描述
app:createdvueAppServer & Client在创建初始vueApp实例时调用。
app:errorerrServer & Client发生致命错误时调用。
app:error:cleared{ redirect? }Server & Client发生致命错误时调用。
app:data:refreshkeys?Server & Client(内部的)
vue:setup-Server & Client(内部的)
vue:errorerr, target, infoServer & Client当vue的error传播到根组件时调用。
app:renderedrenderContextServerSSR 渲染完成时调用。
app:redirected-Server在 SSR 重定向之前调用。
app:beforeMountvueAppClient仅在客户端,安装应用程序之前调用。
app:mountedvueAppClient当 Vue 应用程序在浏览器中初始化并挂载时调用。
app:suspense:resolveappComponentClient关于 Suspense 已解决的事件。
link:prefetchtoClient当观察到<NuxtLink>被预取时调用。
page:startpageComponent?Client调用 Suspense 未决事件。
page:finishpageComponent?Client调用 Suspense 解决事件。
page:transition:finishpageComponent?Client页面转换后 onAfterLeave 事件。

Nuxt Hooks (构建时))

Check the schema source code for all available hooks.

钩子参数描述
kit:compatibilitycompatibility, issues允许扩展兼容性检查。
readynuxt在 Nuxt 初始化之后调用,当 Nuxt 实例准备好工作时。
closenuxt当 Nuxt 实例正常关闭时调用。
restart{ hard?: boolean }被调用以重新启动当前的 Nuxt 实例。
modules:before-在 Nuxt 初始化期间调用,在安装用户模块之前。
modules:done-安装用户模块后,在 Nuxt 初始化期间调用。
app:resolveapp在解析 app 实例后调用。
app:templatesapp在“NuxtApp”生成期间调用,以允许自定义、修改或添加新文件到构建目录(虚拟或写入“.nuxt”)。
app:templatesGeneratedapp在模板编译到 虚拟文件系统 (vfs) 后调用。
build:before-在 Nuxt 包生成器之前调用。
build:done-在 Nuxt 包生成器完成后调用。
build:manifestmanifest在清单构建期间由 Vite 和 webpack 调用。
这允许自定义 Nitro 将用于在最终 HTML 中呈现<script><link>标签的清单。
builder:generateAppoptions在生成应用程序之前调用。
builder:watchevent, path当观察者发现项目中的文件或目录发生更改时,在开发的构建时调用。
pages:extendpages在解析页面路由后调用。
server:devHandlerhandler在 Nitro 开发服务器上注册开发中间件时调用。
imports:sourcespresets在设置时调用,允许模块扩展源。
imports:extendimports在设置时调用,允许模块扩展导入。
imports:contextcontext在创建 unimport 上下文时调用。
imports:dirsdirs允许扩展导入目录。
components:dirsdirsapp:resolve 中调用,允许扩展为自动导入组件扫描的目录。
components:extendcomponents允许扩展新组件。
nitro:confignitroConfig在初始化 Nitro 之前调用,允许自定义 Nitro 的配置。
nitro:initnitro在 Nitro 初始化后调用,允许注册 Nitro 挂钩并直接与 Nitro 交互。
nitro:build:beforenitro在构建 Nitro 实例之前调用。
nitro:build:public-assetsnitro复制公共资产后调用。 允许在构建 Nitro 服务器之前修改公共资产。
prerender:routesctx允许扩展要预渲染的路线。
build:errorerror在构建时发生错误时调用。
prepare:typesoptions在 Nuxi 写入.nuxt/tsconfig.json.nuxt/nuxt.d.ts之前调用,允许在 nuxt.d.ts 中添加自定义引用和声明,或者直接修改 tsconfig.json 中的选项 `
listenlistenerServer, listener在加载开发服务器时调用。
schema:extendschemas允许扩展默认模式。
schema:resolvedschema允许扩展已解析的架构。
schema:beforeWriteschema在编写给定模式之前调用。
schema:written-在编写架构后调用。
vite:extendviteBuildContext允许扩展 Vite 默认上下文。
vite:extendConfigviteInlineConfig, env允许扩展 Vite 默认配置。
vite:serverCreatedviteServer, env创建 Vite 服务器时调用。
vite:compiled-Vite 服务端编译完成后调用。
webpack:configwebpackConfigs在配置 webpack 编译器之前调用。
webpack:compileoptions在编译之前调用。
webpack:compiledoptions加载资源后调用。
webpack:changeshortPath在 WebpackBar 上调用 change
webpack:error-如果 WebpackBar 上有错误,则在“完成”时调用。
webpack:done-在 WebpackBar 上调用 allDone。
webpack:progressstatesArray在 WebpackBar 上调用 progress

Nitro App Hooks(运行时,服务端)

钩子参数说明类型
render:responseresponse, { event }在发送响应之前调用。response, event
render:htmlhtml, { event }在构造 HTML 之前调用。html, event
render:islandislandResponse, { event, islandContext }Called before constructing the island HTML.islandResponse, event, islandContext