vue 中 EventBus 实现组件通信

20 篇文章 0 订阅
16 篇文章 0 订阅

Vue 项目中,一般会通过 vuex 进行状态管理,但在一些小项目或者初期没有规划 vuex 的情况下,在开发过程中需要进行组件通信(不止是父子组件),就可以选择通过 EventBus 来解决。
 

EventBus 又称事件总线。在 Vue 中可以使用 EventBus 来作为沟通桥梁的概念,就像是所有组件共用相同的事件中心,可以向该中心注册发送事件或接收事件,所以组件都可以上下平行地通知其他组件。

具体使用:

1、建立一个 bus.js 的文件。

import Vue from 'vue'
const Bus = new Vue()
export default Bus

2、在 main.js 文件中引入。

import EventBus from '@/bus.js'
Vue.use(EventBus)
Vue.prototype.$EventBus = EventBus

3、调用。

// a.vue 里通过 $emit 触发事件
this.$EventBus.$emit('uploading','sure');

// 传递多个值
this.$EventBus.$emit('myClick', {
    id: id,
    num: num
});
// b.vue 里通过 $on 监听事件
this.$EventBus.$on('uploading', val => {
    console.log(val);  //打印出来 val :sure
})

this.$EventBus.$on('myClick', ({ id,num }) => {
    console.log(id, num);
})

其他文章:

https://www.jb51.net/article/131726.htm

https://zhuanlan.zhihu.com/p/76147272

https://www.cnblogs.com/yangxiaoying/p/11532867.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值