Nuxt3-学习之路 15,插件-defineNuxtPlugin

4,322 阅读1分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第15天,点击查看活动详情

Nuxt3-学习之路 15, 插件-defineNuxtPlugin

引言

本系列会以我的一个理解,来介绍并开始学习 Nuxt3

中间会插入自己所联系到的 乱七八糟 的 知识点

插件

要说 插件 这个词,我还是从 chrome 浏览器的各种插件,才知道插件是个什么东西。

之后的 vscode 插件,webpack 插件,都是对我们提供方便的。那么 Nuxt3 的插件又是什么呢?下面来学习下。

首先是目录,我们需要在与 app.vue 同级的目录下创建一个 plugins 的目录,在这个目录下面创建的文件,都会被注册成插件。

| plugins/
--| my-plugins.ts
| app.vue

defineNuxtPlugin

my-plugins.ts 文件里面的内容是

export default defineNuxtPlugin((nuxtApp) => {
  console.log('nuxtApp', nuxtApp)
})

可以看到有一个 nuxtApp 的一个参数,这个参数里面放置的就是各种实例对象,这里简单截个图看一下

image.png

这里可以看到我们的 vueAPPplayloadprovide 之类的实例

我们这里可以使用一下 provide。改造一下 my-plugins.ts 为一下内容

export default defineNuxtPlugin(() => {
  return {
    provide: {
      hello: () => 'world'
    }
  }
})

在 根路由中进行引入来使用。注意引入的时候,是需要在这个 hello 前面加上*$*符号,因为 hello 是一个函数名,所以我们使用的时候加上一个括号。

const { $hello } = useNuxtApp()

image.png

image.png

可以看到我们的结果是输出的,这个是简单的使用,后续我们可以借助 nuxtApp 里面的 vueApp 这个实例,进行扩展我们的 Nuxt3

使用方法为 nuxtApp.vueApp.use(xxx),可以进行 UI 框架的引入。

总结

学习了 Nuxt3 的 插件 defineNuxtPlugin,这个参数的简单使用,但是它的能力可以通过 vueApp,可以得到更强的扩展。