现在的场景是想要在每个组件内调用一个方法
和一个对象
就是以:
this.fun()
this.ajaxLib.xxx()
针对这种结果,在Vue的插件写法中有两种写法
Myplugins.install = (Vue) => {
// 1
Vue.prototype.fun = () => {}
// 2
Vue.mixin({
methods: {
fun () {}
}
})
}
想问下这两种方式推荐哪种,区别又是什么?mixin的形式会加大内存占用量吗?
1. 从代码上说:
Vue.mixin 方式实质就是就是在 vue 初始化对象的时候,把 Vue.mixin 的参数 复制到了初始化对象中(具体可以参考源码),代码简化如下:
Vue.prototype 就是直接添加到原型上
所以区别就是一个是直接在对象上,一个是在原型上,在线测试
http://jsbin.com/cisucofine/e...
2. 从使用上说
Vue.mixin 的参数其实和 Vue 构造函数的类似,可以看作是为了复用 Vue 组件的方式。
Vue.prototype 就是完全创建一个新的方法