1:在main.js中定义并挂在Bus
const bus = new Vue();
Vue.prototype.$bus = bus
*通过把一个vue实例赋于Vue构造函数原型上的一个属性bus(当然起任何名称都是可以的)
*而每个Vue实例都是有$emit和$on方法的
*由于bus属性在Vue原型上,根据原型链查找规则,在页面中我们就可以通过 this.bus.$emit 和
*this.bus.$on来进行跨组件通信了
*/
2:兄弟组件的调用:
child1组件中:通过事件点击利用$emit来发送事件:
<template>
<div class="c1">
<input type="button" @click="sendMsg" value="兄弟组件1" />
</div>
</template>
<script>
export default {
data() {
return {
list: [{
username: "bcjy",
pwd: "123456"
},
{
username: "bcjy_1",
pwd: "123456"
}
]
}
},
methods: {
sendMsg() {
console.log(this.list);
this.$bus.$emit("send", this.list);
}
}
}
</sc