Nuxt 项目实战 - 02:nuxt中的各种Hooks

两个核心上下文

  • nuxt: 全局上下文,可获取nuxt.config配置
  • nuxtApp:界面共享上下文,有vue实例、运行时钩子、内部状态ssrContext、payload等,可通过useNuxtApp获取(Runtime Core)

生命周期钩子

Nuxt Hook(build Time)

  • nuxt.config使用钩子

    //nuxt.config
    export default defineNuxtConfig({
      hooks: {
        'close': () => { }
      }
    })
    
  • defineNuxtModule 方式使用钩子

    import { defineNuxtModule } from '@nuxt/kit'
    
    export default defineNuxtModule({
      setup (options, nuxt) {
        nuxt.hook('close', async () => { })
      }
    })
    

App Hooks(Runtime)

  • 插件使用钩子

    //plugins/test.ts
    export default defineNuxtPlugin((nuxtApp) => {
        nuxtApp.hook('page:start', () => {
            /* your code goes here */
         })
    })
    

Nitro Plugin

  • 使用钩子

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

参考文献

更多

最近我开源了一个文章助手artipub,可以帮你一键将markdown发布至多平台,方便大家更好的传播知识和分享你的经验。
官网地址:https://artipub.github.io/artipub/ (提示:国内访问可能有点慢,翻墙就会很快)

帮忙点个star⭐,让更多人知道这个工具,谢谢大家🙏。如果你有兴趣,欢迎加入你的加入,一起完善这个工具。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Potter

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值