🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
>[success] # Vue -- 插件 1. 通过下面的代码形式为`vue `实例提供插件,向Vue全局添加一些功能时,会采用插件的模式 ~~~ import { createApp } from 'vue' const app = createApp({}) app.use(myPlugin, { /* 可选的选项 */ }) ~~~ 2. 编写插件执行两种形式 * **对象类型**:一个对象,但是必须包含一个 `install `的函数,该函数会在安装插件时行,**install 函数参数为当前vue 实例**; * **函数类型**:一个`function`,这个函数会在安装插件时自动执行,**函数参数就是当前vue实例**; ~~~ // 安装插件 // 方式一: 传入对象的情况 app.use({ install: function(app) { console.log("传入对象的install被执行:", app) } }) // 方式二: 传入函数的情况 app.use(function(app) { console.log("传入函数被执行:", app) }) ~~~ 3. 以vue-router 为例 就是利用注册配合了 * 通过 `app.component()` 和 `app.directive()` 注册一到多个全局组件或自定义指令。 * 通过 `app.provide()` 使一个资源可被注入进整个应用。 * 向 `app.config.globalProperties` 中添加一些全局实例属性或方法 >[danger] ##### 场景 可以将一些需要 vue 实例组测的模块直接使用use 注册,例如定义全局指令时候,将全局指令提出的文件导入时候就可以使用注册插件