新创建一个vue实例用于调度事件的绑定和发送
可以做到同级组件相互通讯,传递参数,点击第一个组件会修改第二个组件的label值,点击第二个组件会修改第二个组件的label值
!DOCTYPE html html lang="en" head meta charset="UTF-8" script src="vue.js" /script /head body div id="app" one /one two /two /div /body script // 使用一个vue实例 作为事件的载体,用于绑定事件和处理发送事件,作为调度中心 let eventBus = new Vue() let one = { template: ' div {{val}} button @click="click" click /button /div ', data() { return { val: 0 created() { //为one绑定事件,如果two_click事件发生了,则执行回调函数 eventBus.$on('two_click', (val) = { // 这个this 指的是one的vue实例 this.val = val methods: { click() { // 如果one被点击了,则发送一个one_click的事件,并传递一个参数 eventBus.$emit('one_click', 11) let two = { template: ' div {{val}} button @click="click" click /button /div ', data() { return { val: 0 created() { eventBus.$on('one_click', (val) = { this.val = val methods: { click() { eventBus.$emit('two_click', 22) new Vue({ el: '#app', components: { one, /script /html
总结
以上所述是小编给大家介绍的vue 使用eventBus实现同级组件的通讯,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对凡科网站的支持!