Vue应用API——use解析
admin
2024-04-04 22:15:56

文章目录

  • 一、app.use
    • 1.使用场景
    • 2.原理
  • 二、封装自定义插件
    • 1.写法一
    • 2.写法二
    • 3.应用插件
    • 4.注意事项
  • 总结


一、app.use

1.使用场景

  不论是Vue2中的Vue.use亦或者Vue3中的app.use。其功能主要是用在插件的安装上,往往是在项目的入口文件(比如main.js)中。被use的插件多数是 NPM 中的第三方库 。在必要的时候,也可以封装一个自定义的插件以供团队的使用。这样可以避免反复开发同一个功能。

2.原理

  从Vue源码对 app.use 描述可以看出,app.use(plugin) 中的核心部分“plugin(app, …options)”“plugin.install(app, …options)” 这两句;
  也就是说,app.use(plugin),本质上就是把plugin中的 install 方法调用一遍
  不仅如此,还可以发现 Vue 框架在 install 函数中暴露了 app实例, 所以在实际开发中能挂载到 app实例上的都可以在install函数中实现,然后通过app.use()将插件快速地应用到各个项目中;
  由此看来,我们也可以通过封装自定义插件供开发使用。

二、封装自定义插件

  一个插件可以是一个拥有 install() 方法的对象,也可以直接是一个安装函数本身

1.写法一

拥有 install() 方法的对象

// 写法一:对象中定义 install 函数
let myPlugin = {install(app) {// 定义一个实例方法app.config.globalProperties.sayHello = function () {alert('Hello, Nancy!');}// 定义一个全局指令:元素挂载后"自动聚焦"及"动态绑定数据"app.directive('myModel', {mounted(el, binding) {el.focus();el.value = binding.value;},})// 定义一个全局按钮组件app.component('el-button', {name: "el-button",template: ''})}
}
export default myPlugin;

2.写法二

直接是一个安装函数本身

// 写法二:直接定义 install 函数
let install = function (app, options) {// 定义一个实例方法app.config.globalProperties.sayHello = function () {alert('Hello, Nancy!');}// 定义一个全局指令:元素挂载后"自动聚焦"及"动态绑定数据"app.directive('myModel', {mounted(el, binding, vnode, prevNode) {el.focus();el.value = binding.value;},})// 定义一个全局按钮组件app.component('el-button', {name: "el-button",template: ''})
}
export default install;

3.应用插件

应用自定义插件(main.js)

import myPlugin from './plugin/myPlugin';
// 自动调用插件 myPlugin 的 install 方法
app.use(myPlugin);

组件中测试


效果

4.注意事项

  注意:不要滥用插件,多个项目都需要使用时才抽离成一个Vue插件,然后封装成一个Npm包。


总结

  app.use 在 Vue 中的作用主要是帮助团队将一些在各个部门中都需要使用的公共的与业务无关的部分从现有业务中抽离出来,形成一个独立的和业务无关的第三方库,以便在下次项目中直接通过use使用。NPM上就有大量的第三方库或者组件等,例如moment、element-ui等都属于与业务无关但是又经常使用的公共部分,便可以采用这种方法引入。

相关内容

热门资讯

把音乐厅搬进喀斯特溶洞是什么体...   近日,一场融合多元艺术形式的洞穴音乐会在贵州省修文县举行,五百余名观众在喀斯特溶洞之中,感受了一...
教师专享福利!北京这些景区免票... 新京报讯 据首都教育消息,教师节将至,北京多家景区为老师们准备了专属免票福利!这份优惠合集已整理好,...
黑茶,喝的是一种境界与健康 在专门用来喝黑茶的茶具“飘逸杯”里,黑茶茶汤看起来并不像“黑茶”这个名字那样黑黢黢的一团。 玻璃器皿...
上海旅游节大巡游花车阵容抢先看... 2026上海旅游节大巡游9月12日外滩启幕,21辆全新主题花车携手21支境内外表演方队联袂登场,邀你...
原创 8... 上周门诊来了位 62 岁的张阿姨,得糖尿病快五年了,平时管嘴特别严,糖果、点心、甜饮料一概不碰,连水...