vue中提供了一种混合机制--mixins,用来更高效的实现组件内容的复用
mixin使用实例
index.vue 引入了mixin.js
<template>
<div>
{{name}} {{major}} {{city}}
<button @click="showName">点击</button>
</div>
</template>
<script>
import myMixin from './mixin'
export default {
mixins:[myMixin],//可以添加多个,会自动合并起来
data() {
return {
name:'lolo',
major:"web前端"
};
},
};
</script>
mixin.js文件中页输出一个vue实例
export default {
data() {
return {
city:'北京',
};
},
methods:{
showName(){
console.log(this.name)
}
},
mounted(){
console.log('mixin mounted',this.name)
}
};
mixin.js vue实例的内容会和index的vue实例内容合并,
index.vue 可以获取合并后的实例数据
弊端
mixin 并不是完美解决方案,会有一些问题
- 变量来源不明确,不利于阅读
- 多个minix可能造成类名冲突
- mixin和组件可能出现多对多的关系,复杂度较高
Vue3 提出的Composition API旨在解决这些问题
网友评论