官方文档:https://cn.vuejs.org/v2/guide/mixins.html
混入 (mixin) 提供了一种非常灵活的方式,来分发 Vue 组件中的可复用功能。一个混入对象可以包含任意组件选项(data/方法/生命周期钩子函数)。当组件使用混入对象时,所有混入对象的选项将被“混合”进入该组件本身的选项。
- 当组件和混入对象含有同名选项时,发生冲突时以组件数据优先。
- 同名钩子函数将合并为一个数组,都将被调用。混入对象的钩子将在组件自身钩子之前调用。
var mixin = {
data () {
return {
text: 'hello world'
}
},
methods: {
foo: function () {
console.log('foo')
},
conflicting: function () {
console.log('from mixin')
}
}
}
var vm = new Vue({
mixins: [mixin],
methods: {
bar: function () {
console.log('bar')
},
conflicting: function () {
console.log('from self')
}
}
})
vm.text // => "hello world"
vm.foo() // => "foo"
vm.bar() // => "bar"
vm.conflicting() // => "from self"