什么是中央事件总线
通过创建一个新的vm对象,专门统一注册事件,供所有组件共同操作,达到所有组件随意隔代传值的效果
安装bus
npm install vue-bus
方式1: 全局事件总线
main.js中:
import Vue from 'vue';
import VueBus from 'vue-bus';
Vue.use(VueBus);
父组件中:
<template>
<div><Zi1 /><Zi2 /></div>
</template>
<script>
import Zi1 from "./zi1.vue";
import Zi2 from "./zi2.vue";
export default {
data() {
return {};
},
components: {
Zi1,
Zi2,
},
};
</script>
子组件1中:发送
<template>
<div>
<button @click="fun()">点我把数据传递给我兄弟zi2</button>
</div>
</template>
<script>
export default {
data() {
return {
text: "我是zi1里的数据",
};
},
methods: {
fun() {
// 2.在事件中直接给引进来的中央时间总线绑定自定义事件
this.$bus.emit("data1", this.text);
},
},
};
</script>
子组件2中:接收
<template>
<div class=''>
子组件2
</div>
</template>
<script>
export default {
mounted(){
this.$bus.on('data1',age => {
console.log(age)
})
}
}
</script>