当两个或者多个组件存在相同的属性或方法时,将相同的特征提取出来写成一个mixin.js
的文件,mixin.js
文件的内容是多个组件相同的部分,其内容跟组件的配置项的内容是一样的,但mixin.js
文件的中是都相同的配置项。
当某个组件需要使用的该mixin.js
文件里面的内容时,先在本组件中导入mixin.js
文件,然后在mixin
属性中以数组的方式声明,而当存在重叠的配置项时,会保留原本的配置项,其他的都跟原配置项一起混入形成新的配置项,注意:如果生命周期函数发生重叠,是都要执行,不以特定的组件为主!!!
使用方式:
- (1) 第一步:定义要混合的配置项:
{
data(){
}
methosds:{
}
}
- 第二步:使用混合,混合包括全局混和和局部混和的两个方式:
import XXX from module
全局混入:Vue.mixin(xxx)
局部混入:minxins:[‘XXX’]
案列:
(1) . 先定义要混合的配置项mixin.js:
export const hehe = {
methods: {
showName() {
console.log(this.name);
}
},
mounted() {
console.log('a')
}
}
(2) 在Student和School组件中导入mixin.js 然后局部使用:
import {
hehe } from "../mixin";
export default {
name: "School",
data() {
return {
name: "学校名",
address: "学校地址",
};
},
mixins: [hehe],
};