mixin 是 Vue.js 中的一个全局混入对象,可以用来分发 Vue 组件中的可复用功能。一个 mixin 对象可以包含任何组件选项,它将被合并到最终的选项中。
mixin 的作用是:
- 可以重用一些公共的功能函数或逻辑。
- 将组件拆分为可重用模块,提高组件的开发效率。
- 增强组件的功能,让组件具有一定的预设功能。
使用方式:
js
var mixin = {
methods: { ... },
created: function () { ... },
// ...
}
var Component = {
mixins: [mixin],
// ...
}
示例:
js
const helloMixin = {
methods: {
sayHello() {
console.log('hello!')
}
}
}
const worldMixin = {
methods: {
sayWorld() {
console.log('world!')
}
}
}
const myComponent = {
mixins: [helloMixin, worldMixin],
created() {
this.sayHello() // Prints "hello!"
this.sayWorld() // Prints "world!"
}
}
在这个例子中,myComponent 通过 mixins 获取了 helloMixin 和 worldMixin 的方法,所以能够调用 sayHello 和 sayWorld。
mixin 的注意点:
- mixin 和组件中重名的选项以组件的优先。
- mixin 可以包含其他 mixin,形成混入链。
- 避免 mixin 引起的循环依赖。
- mixin 中的钩子函数的合并策略是将数组的形式组合起来,按照 mixin 应用的顺序执行。