vue兄弟组件通信

所有需要通信的组件共用一个事件对象。new Vue(),新new一个vue对象,然后所有组件都访问这个对象,通过这个对象$emit事件,也通过这个对象$on监听事件。

实现一:直接在单文件里面实例化根Vue的时候,在data里return一个属性,值为new Vue(),例如bus: new Vue()

在具体的组件页面上,直接用this.$root.bus.$emit('eventName')发送事件。

在另一个组件页面的mounted函数里面,用this.$root.bus.$on('eventName', () => { // 一些要做的事  } )监听事件。

实现二:把共用的事件对象单独抽成一个bus.js文件,哪个组件要用到就引用进来,然后$emit或者$on。

实现三:抽成bus.js文件后,还可以作为Vue的插件。

 

转载于:https://www.cnblogs.com/coconutGirl/p/9447944.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值