event-bus

先命名一个event-bus.js,创建一个新的全局Vue实例,命名为EventBus并且导出该对象。
 
import Vue from 'vue';
import EventBus from 'event-bus'
Vue.component('component-a', {
  ...
  methods: {
    emitMethod () {
       EventBus.$emit('EVENT_NAME', payLoad);
    }
  }
});


 






在另外一个组件B中,我们可以注册一个监听事件,来监听由EventBus传递来的事件“EVENT_NAME”。
 
import Vue from 'vue';
import EventBus from './event-bus';
Vue.component(‘component-b’, {
  ...
  mounted () {
    EventBus.$on('EVENT_NAME', function (payLoad) {
      ...
    });
  }
});

 
这样B组件就可以监听A组件触发的事件,而不需要考虑过多的层级问题。
注:早点上vuex少纠结了

还有一种伪兄弟组件通讯,event-bus是通过子组件,还可以通过父组件(vuex的思想),使用vuex将所有组件当做其的子组件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值