mixin就是方法变量抽离的合集,引用在组件内,相当于组件的拓展,和组件内其他方法变量一样使用。
1、生命周期
mixin中生命周期钩子会和组件中的生命周期钩子进行合并,而不是覆盖,合并后业务代码,
mixin的业务代码在组件业务代码之前,也就会出现,先执行mixin中生命周期里的逻辑,
在执行组件中的。
created() {
console.log('mixin created');
}
created() {
console.log('mixin component');
}
created() {
console.log('mixin created');
console.log('mixin created');
}
2、相同方法,属性
mixin和组件中存在相同方法时,组件的方法的优先级大于mixin中。
也就是,mixin中方法会被组件中的方法覆盖掉,不执行。属性与方法一致。
3、同一个mixin被多个组件调用
多个组件调用同一个mixin,每个变量都是单独独立的,不会项目影响污染。
3、注意
1、组件和mixin中相同方法覆盖,只有不在生命周期中调用才能实现,
也就是,如果在mixin和组件的生命周期分别调用相同方法,是要执行2次,
且mixin方法优先执行。但是通过其他方法调用或者button按钮调用是执行
组件中的方法。
2、不建议全局引入mixin。