大家可能也有注意到,这里的install
其实是将所有的组件全部引入了。作为一个庞大的插件库,这样可能会有一些性能问题。用过的ElementUI
的同学都知道,它是支持按需引入的,其实在上面的示例中也可以发现一些蛛丝马迹。
const components = [ Pagination, Dialog, Autocomplete/* 此处由于篇幅省略若干个组件 */]; // ....省去中间内容 export default { version: '2.13.0', locale: locale.use, i18n: locale.i18n, install, CollapseTransition, Loading, Pagination, Dialog, Autocomplete, // ...other components };
这里将每个组件都单独都导出了,而在每个组件内部,也类似的暴露了install
来组件每个组件,这样就可以单独Vue.use
每个组件,从而实现按需引入的目的。
import Alert from './src/main'; /* istanbul ignore next */ Alert.install = function(Vue) { Vue.component(Alert.name, Alert); }; export default Alert;
除了上述内容之外,还有几点值得我们注意一下:
- 插件传入的如果是一个对象,则执行其
install
方法,如果是一个函数,则执行它自身,并bind
this
为null
,然后传入额外的参数
if (typeof plugin.install === 'function') { plugin.install.apply(plugin, args); } else if (typeof plugin === 'function') { plugin.apply(null, args); }
- 如果插件没有被注册过,那么注册成功之后会给插件添加一个
installed
的属性,其值为true
。Vue.use
方法内部会检测插件的installed
属性,从而避免重复注册插件
Vue.use
其实并不神秘,内部还是我们平时使用的这些东西,仅仅只是给他们套上了一层高端的外衣而已。我们在开发中,也可以尝试使用这种方式,不仅简单,而且有逼格。
相关推荐:
2020年前端vue面试题大汇总(附答案)
vue教程推荐:2020最新的5个vue.js视频教程精选
更多编程相关知识,请访问:编程入门!!
以上就是浅谈Vue.use到底是什么?的详细内容,更多文章请关注木庄网络博客!
相关阅读 >>
更多相关阅读请进入《vue.js》频道 >>

Vue.js 设计与实现 基于Vue.js 3 深入解析Vue.js 设计细节
本书对 Vue.js 3 技术细节的分析非常可靠,对于需要深入理解 Vue.js 3 的用户会有很大的帮助。——尤雨溪,Vue.js作者