新建bus.js文件
// 快递员,负责兄弟组件之间传递数据
import Vue from 'vue'
// 导出一个Vue对象
// 注意:这是一个新的对象,与main.js里边的没有关系
export default new Vue()
父组件
<template>
<div>
<chirldA></chirldA>
<chirldB></chirldB>
</div>
</template>
<script>
import chirldA from '../chirldA.vue'
import chirldB from '../chirldB.vue'
name:'parent',
components: {
chirldA,chirldB
}
</script>
子组件A(传递信息)
<template>
<div>
<button @click='onclick'></button>
</div>
</template>
<script>
import bus from '../bus.js'
name:'chirldA',
methods: {
onclick(){
//bus调用$emit()调动事件进行数据传递 bus.$emit(事件,参数,参数)
bus.$emit('tabChange','传递的信息')
}
}
</script>
子组件B(接受信息)
<template>
<div>
</div>
</template>
<script>
import bus from '../bus.js'
name:'chirldB',
created () {
// 实例对象.$on(事件名称,function(形参,形参){}事件事件的回调方法)
bus.$on('tabChange', msg => {
// 接收兄弟组件传值
console.log('接受到了:', msg)
})
},
</script>