一:组件是什么?
组件就是把图形,非图形的各种逻辑均抽象为一个统一的概念(组件)来实现开发模式,在vue中每一个.vue文件都可以视为一个组件。
组件的优势:
- 降低整个系统的耦合度,在保持接口不变的情况下,可以替换不同的组件快速完成需求。
- 调试方便。可以快速定位,因为每个组件都是低耦合,职责单一
- 提高可维护性
二:插件是什么?
插件通常是用来为Vue添加全局功能。
- 添加全局方法或者属性
- 添加全局资源
- 通过全局混入来添加一些组件选项
- 添加Vue实例方法,通过把它们添加到Vue.prototype上实现
- 一个库,提供自己的API,同时提供上面提到的一个或者多个功能
三:两者的区别
- 编写形式
- 注册形式
- 使用场景
编写插件:
MyPlugin.install = function(Vue, options) {
// 1,添加全局方法或property
Vue.myGlobalMethod = function(){
// 逻辑
}
// 2.添加全局资源
Vue.directive('my-directive', {
bind(el, binding, vnode, oldVnode){
// 逻辑
}
})
// 3.注入组件选项
Vue.mixin({
created: function(){
// 逻辑
}
})
// 4.添加实例方法
Vue.prototype.$myMethod = function(methodOptions){
// 逻辑
}
}
注册形式:
组件注册:全局注册和局部注册
插件注册:Vue.use(插件名字, {配置项})
注意:
1,注册插件的时候,需要在调用new Vue()启动应用之前完成
2,Vue.use会自动阻止多次注册相同的插件,只会注册一次
四:使用场景
组件是用来构成你的App的业务模块,他的目标是app.vue 插件是用来增加你的技术栈的功能模块,他目标是Vue本身。 简单来说,插件是对vue组件的功能的增加或者补充。