首页 > 编程 > JavaScript > 正文

vue 使用eventBus实现同级组件的通讯

2019-11-19 14:15:10
字体:
来源:转载
供稿:网友

新创建一个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,   two  } })</script></html>

总结

以上所述是小编给大家介绍的vue 使用eventBus实现同级组件的通讯,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对武林网网站的支持!

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表