vue 使用eventBus实现同级组件的通讯
2018-03-02 10:31
761 查看
新创建一个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实现同级组件的通讯,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
您可能感兴趣的文章:
相关文章推荐
- vue 同级组件的通讯 使用eventBus
- vue2.0使用swiper组件实现轮播
- Android四大组件应用系列——使用ContentProvider实现跨进程通讯
- Vue2.0与 [百度地图] 结合使用———vue+webpack+axios+百度地图实现组件之间的通信
- 详解vue2.0 使用动态组件实现 Tab 标签页切换效果(vue-cli)
- vue2.0 使用element-ui里的upload组件实现图片预览效果
- 使用EventBus进行组件间通讯
- Vue2.0与 [百度地图] 结合使用———vue+webpack+axios+百度地图实现组件之间的通信
- vue2.0 使用element-ui里的upload组件实现多图上传。采用FORMDATA的方式上传。
- 详解vue2.0 使用动态组件实现 Tab 标签页切换效果(vue-cli)
- Vue.js分页组件实现:diVuePagination的使用详解
- vue2.0使用swiper组件实现轮播的示例代码
- 2018.01.29.使用vue组件modal制作登陆弹窗,并实现背景灰蒙透明效果
- vue2.0 兄弟组件(平级)通讯的实现代码
- Android组件间通讯Eventbus日常使用
- Vue.js使用-组件示例(实现数据的CRUD)
- 使用bus实现Vue组件间通信
- vue父子组件通讯--在组件内使用v-for
- VUE+WebPack前端游戏设计:依赖VUE组件通讯机制实现场景游戏切换
- vue2.0使用swiper组件实现轮播效果