返回介绍

生命周期钩子 Lifecycle Hooks

发布于 2024-04-18 00:42:18 字数 9576 浏览 0 评论 0 收藏 0

Nuxt 提供了强大的 hooking 系统,可以使用 hooks 扩展几乎所有方面。 相关阅读:going-further > 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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文