mixin用法
- mixin中的生命周期函数会和组件的生命周期函数都执行。先执行mixin中的,后执行组件的。
- mixin中的data数据和方法在组件内部可以直接调用。
- 一个组件中改动了mixin中的数据,另一个引用了mixin的组件不受影响。
- 当组件和mixin的数据或者方法冲突,组件中的数据和方法会覆盖mixin中数据和方法
1、mixin定义
export const mixins = {
data() {
return {
msg: "我是小猪课堂",
};
},
computed: {},
created() {
console.log("我是mixin中的created生命周期函数");
},
mounted() {
console.log("我是mixin中的mounted生命周期函数");
},
methods: {
clickMe() {
console.log("我是mixin中的点击事件");
},
},
};
2、执行顺序
console.log("我是mixin中的created生命周期函数");
console.log("我是组件中的created生命周期函数");
console.log("我是mixin中的mounted生命周期函数");
console.log("我是组件中的mounted生命周期函数");
2、局部混入
<template>
<div id="app">
<!-- 调用minxin的方法 -->
<button @click="clickMe">点击我</button>
</div>
</template>
<script>
import { mixins } from "./mixin/index";
export default {
name: "App",
mixins: [mixins],
components: {},
created(){
<!-- 调用minxin的数据 -->
console.log("组件调用minxi数据",this.msg);
}
};
</script>
3、全局混入
- main.js
import { mixins } from "./mixin/index";
Vue.mixin(mixins);
4、mixin的优缺点
优点
- 提高代码复用性
- 无需传递状态
- 维护方便,只需要修改一个地方即可
缺点
- 命名冲突
- 滥用的话后期很难维护
- 不好追溯源,排查问题稍显麻烦
- 不能轻易的重复代码