作用:非父子组件之间,进行简易消息传递。(复杂场景 -> Vuex)
1.创建一个都能访问到的事件总线(空 Vue 实例) -> utils/EventBus.js
import Vue from 'vue'
const Bus = new Vue()
export default Bus
2. A组件(接收方),监听 Bus实例 的事件(支持多个组件同时监听)
created () {Bus.$on('sendMsg',(msg) => {this.msg = msg})
}
3. B组件(发送方),触发 Bus实例 的事件
Bus.$emit('sendMsg', '这是一个消息')
代码示例:
(1). src / utils / EventBus.js 创建事件总线
// 1.创建一个都能访问到的事件总线 (空的 Vue 实例)
import Vue from 'vue'const Bus = new Vue()export default Bus
(2). 创建发送者和接受者组件
(3). App.vue 引入渲染
<template><div id="app"><BaseA></BaseA><BaseB></BaseB></div>
</template><script>import BaseA from './components/BaseA.vue'
import BaseB from './components/BaseB.vue'export default {components: {BaseA,BaseB}}</script>
<style></style>