生命周期钩子
Nuxt 提供了一个强大的钩子系统,可以使用钩子来扩展几乎所有方面。
应用程序钩子(运行时)
查看应用程序源代码以获取所有可用的钩子。
钩子 | 参数 | 环境 | 描述 |
---|---|---|---|
app:created | vueApp | 服务器端和客户端 | 在初始 vueApp 实例创建时调用。 |
app:error | err | 服务器端和客户端 | 在发生致命错误时调用。 |
app:error:cleared | { redirect? } | 服务器端和客户端 | 在发生致命错误时调用。 |
app:data:refresh | keys? | 服务器端和客户端 | (内部) |
vue:setup | - | 服务器端和客户端 | (内部) |
vue:error | err, target, info | 服务器端和客户端 | 当 vue 错误传播到根组件时调用。了解更多。 |
app:rendered | renderContext | 服务器端 | 在 SSR 渲染完成时调用。 |
app:redirected | - | 服务器端 | 在 SSR 重定向之前调用。 |
app:beforeMount | vueApp | 客户端端 | 在应用程序挂载之前调用,仅在客户端端调用。 |
app:mounted | vueApp | 客户端端 | 在 Vue 应用程序初始化并在浏览器中挂载时调用。 |
app:suspense:resolve | appComponent | 客户端端 | 在 Suspense 解析事件上调用。 |
link:prefetch | to | 客户端端 | 当观察到 <NuxtLink> 被预取时调用。 |
page:start | pageComponent? | 客户端端 | 在 Suspense 挂起事件上调用。 |
page:finish | pageComponent? | 客户端端 | 在 Suspense 解析事件上调用。 |
page:transition:finish | pageComponent? | 客户端端 | 在页面过渡的 onAfterLeave 事件之后调用。 |
Nuxt 钩子(构建时)
查看模式源代码以获取所有可用的钩子。
钩子 | 参数 | 描述 |
---|---|---|
kit:compatibility | compatibility, issues | 允许扩展兼容性检查。 |
ready | nuxt | 在 Nuxt 初始化完成后调用,当 Nuxt 实例准备好工作时。 |
close | nuxt | 在 Nuxt 实例正常关闭时调用。 |
restart | { hard?: boolean } | 用于重启当前的 Nuxt 实例。 |
modules:before | - | 在 Nuxt 初始化期间,在安装用户模块之前调用。 |
modules:done | - | 在 Nuxt 初始化期间,在安装用户模块之后调用。 |
app:resolve | app | 在解析 app 实例之后调用。 |
app:templates | app | 在 NuxtApp 生成过程中调用,允许自定义、修改或添加新文件到构建目录(无论是虚拟的还是写入到 .nuxt 目录中)。 |
app:templatesGenerated | app | 在模板编译到虚拟文件系统(vfs)之后调用。 |
build:before | - | 在 Nuxt 打包构建器之前调用。 |
build:done | - | 在 Nuxt 打包构建器完成后调用。 |
build:manifest | manifest | 在 Vite 和 webpack 构建清单期间调用。这允许自定义 Nitro 在最终 HTML 中渲染 <script> 和 <link> 标签所使用的清单。 |
builder:generateApp | options | 在生成应用程序之前调用。 |
builder:watch | event, path | 在开发环境的构建过程中,当监视器检测到项目中的文件或目录发生变化时调用。 |
pages:extend | pages | 在页面路由解析完成后调用。 |
server:devHandler | handler | 在 Nitro 开发服务器注册开发中间件时调用。 |
imports:sources | presets | 在设置过程中调用,允许模块扩展源。 |
imports:extend | imports | 在设置过程中调用,允许模块扩展导入。 |
imports:context | context | 在创建 unimport 上下文时调用。 |
imports:dirs | dirs | 允许扩展导入目录。 |
components:dirs | dirs | 在 app:resolve 中调用,允许扩展自动导入组件的目录。 |
components:extend | components | 允许扩展新组件。 |
nitro:config | nitroConfig | 在初始化 Nitro 之前调用,允许自定义 Nitro 的配置。 |
nitro:init | nitro | 在 Nitro 初始化完成后调用,允许注册 Nitro 钩子并直接与 Nitro 进行交互。 |
nitro:build:before | nitro | 在构建 Nitro 实例之前调用。 |
nitro:build:public-assets | nitro | 在复制公共资产之后调用。允许在构建 Nitro 服务器之前修改公共资产。 |
prerender:routes | ctx | 允许扩展要预渲染的路由。 |
build:error | error | 在构建时发生错误时调用。 |
prepare:types | options | 在 Nuxi 写入 .nuxt/tsconfig.json 和 .nuxt/nuxt.d.ts 之前调用,允许在 nuxt.d.ts 中添加自定义引用和声明,或直接修改 tsconfig.json 中的选项。 |
listen | listenerServer, listener | 在开发服务器加载时调用。 |
schema:extend | schemas | 允许扩展默认模式。 |
schema:resolved | schema | 允许扩展已解析的模式。 |
schema:beforeWrite | schema | 在写入给定模式之前调用。 |
schema:written | - | 在模式写入完成后调用。 |
vite:extend | viteBuildContext | 允许扩展 Vite 默认上下文。 |
vite:extendConfig | viteInlineConfig, env | 允许扩展 Vite 默认配置。 |
vite:configResolved | viteInlineConfig, env | 允许读取已解析的 Vite 配置。 |
vite:serverCreated | viteServer, env | 在 Vite 服务器创建时调用。 |
vite:compiled | - | 在 Vite 服务器编译完成后调用。 |
webpack:config | webpackConfigs | 在配置 webpack 编译器之前调用。 |
webpack:configResolved | webpackConfigs | 允许读取已解析的 webpack 配置。 |
webpack:compile | options | 在编译之前调用。 |
webpack:compiled | options | 在资源加载完成后调用。 |
webpack:change | shortPath | 在 WebpackBar 上的 change 事件上调用。 |
webpack:error | - | 在 WebpackBar 上的 done 事件中,如果有错误则调用。 |
webpack:done | - | 在 WebpackBar 上的 allDone 事件上调用。 |
webpack:progress | statesArray | 在 WebpackBar 上的 progress 事件上调用。 |
Nitro 应用程序钩子(运行时,服务器端)
钩子 | 参数 | 描述 | 类型 |
---|---|---|---|
render:response | response, { event } | 在发送响应之前调用。 | response, event |
render:html | html, { event } | 在构建 HTML 之前调用。 | html, event |
render:island | islandResponse, { event, islandContext } | 在构建岛屿 HTML 之前调用。 | islandResponse, event, islandContext |