什么是mixin混入
- 功能:可以把多个组件共用的配置(如 data、methods、computed、watch、生命周期钩子等)提取成一个混入对象
- 作用:复用组件间的逻辑
mixin使用方式
- 定义混入
const mixin = {
data() {return {....}},
methods: {....} ,
mounted() {}
....
}
- 使用混入
//全局混入
Vue.mixin(xxx)
//局部混入
mixins:[‘xxx’]
示例
<div id="app">
{{name}}
<button @click="showName">调用混合事件</button>
</div>
<script>
Vue.config.productionTip = false;//阻止 vue 在启动时生成生产提示
const hunhe = {
methods: {
showName() {
console.log('hunhe--showName--执行了', this.name);
alert(this.name);
}
},
data() {
return {
name: 'hunhe',
x: 1
}
},
mounted() {
console.log('hunhe--mounted--执行了', this.name);
}
}
//全局混入
Vue.mixin({
methods: {
showName() {
console.log('hunhe2--showName--执行了', this.name);
alert(this.name);
}
},
data() {
return {
name: 'hunhe2',
y: 2,
}
},
mounted() {
console.log('hunhe2--mounted--执行了', this.name);
}
})
Vue.mixin(hunhe)//全局混入
let vm = new Vue({
el: '#app',
data: {
name: '张三',
z: 3
},
methods: {
showName() {
console.log('vm--showName--执行了', this.name);
}
},
//mixins: [hunhe, hunhe2],// 局部混入
mounted() {
console.log('vm--mounted--执行了', this.name);
}
})
</script>

备注