eventbus

在vue开发过程中,通常会遇到组件通信的问题,相信有一点开发经验的小伙伴都知道,父传子通过props,子传父通过$emit触发自定义事件,这样的文章也是非常多,不做过多的说明了。这里主要说下非父子组件之间的通信了。

非父子组件通信很多人第一反应就是使用vuex,但是对于很多小项目来说,没有必要使用vuex,这个时候使用eventBus事件总线就非常合适了。

新建一个js文件,命名为bus.js,bus.js内容如下

1
2
import Vue from 'vue'
export default new Vue()

这样我们就创建了一个新的vue实例,接下来,我们在在组件中引入bus.js文件。

1
import bus from 'common/js/bus.js'

在要触发的组件中,使用 bus.$emit(‘myEvent’,’参数’)

在要接受的组件的生命周期钩子中接受

1
2
3
bus.$on('myEvent',msg=>{
console.log(msg)
})


转载请注明: 前端无忧网 eventbus