index.html是什么插件,插件的定义和使用

[TOC]

>[success] # 插件的定义和使用

本章讲解一下 **vue** 里 **插件的概念** ,之前学习过 **mixin 混入** ,通过 **mixin 混入可以对一些代码逻辑进行一些封装** ,实际上呢,我们如果使用 **plugin插件** 的这种功能,可以 **对代码做更好的封装**,那么一起学习一下在**vue** 里如果做 **插件** 。

**index.html**

~~~

插件的定义和使用

// plugin 插件, 也是把通用性的功能封装起来

const myPlugin = {

/**

* 插件运行时走的逻辑,我们可以取到vue实例可以根据实例对象进行一些功能的扩展

* @param {object} app - vue实例

* @param {object} options - vue实例

*/

install(app, options){

// 全局的provide name变量,用的地方只需要inject: ['name'],就可以取到

app.provide('name', 'Dell Lee')

// 全局自定义指令

app.directive('focus', {

mounted(el){

el.focus()

}

})

// 全局混入

app.mixin({

mounted(){

console.log('mixin')

}

})

// vue全局属性扩展 app.config.globalProperties

// 扩展$sayHello这个变量,如果加$证明是对vue底层做一个扩展

app.config.globalProperties.$sayHello = 'hello world'

}

}

const app = Vue.createApp({

template: `

`

})

app.component('my-title', {

inject: ['name'],

mounted(){

console.log(this.$sayHello)

},

template: `

{{ name }}
`

})

/**

* 注册插件

* @param {object} 参数1 - 插件对象

* @param {object} 参数2 - 给插件传入的信息

*/

app.use(myPlugin, { name: 'dell' })

const vm = app.mount('#root')

~~~

**vuex** 以及 ** vue router** 都是通过 **plugin** 来进行扩展的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值