vue 使用eventBus实现同级组件的通讯
程序员文章站
2023-08-11 19:42:40
新创建一个vue实例用于调度事件的绑定和发送
可以做到同级组件相互通讯,传递参数,点击第一个组件会修改第二个组件的label值,点击第二个组件会修改第二个组件的label...
新创建一个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实现同级组件的通讯,希望对大家有所帮助
推荐阅读
-
vue2.0 使用element-ui里的upload组件实现图片预览效果方法
-
基于elementUI使用v-model实现经纬度输入的vue组件
-
Vue使用.sync 实现父子组件的双向绑定数据问题
-
vue2.0 使用element-ui里的upload组件实现图片预览效果方法
-
使用Vue的slot插槽分发父组件内容实现高度复用、更加灵活的组件(推荐)
-
vue select组件的使用与禁用实现代码
-
vue 使用eventBus实现同级组件的通讯
-
VUE JS 使用组件实现双向绑定的示例代码
-
Vue使用.sync 实现父子组件的双向绑定数据问题
-
vue中通过使用$attrs实现组件之间的数据传递功能