25-非父子通信 - event bus 事件总线

作用:非父子组件之间,进行简易消息传递。(复杂场景 -> Vuex)

1.创建一个都能访问到的事件总线(空 Vue 实例) -> utils/EventBus.js

javascript 复制代码
import Vue from 'vue'
const Bus = new Vue()
export default Bus

2. A组件(接收方),监听 Bus实例 的事件(支持多个组件同时监听)

javascript 复制代码
created () {
    Bus.$on('sendMsg',(msg) => {
        this.msg = msg
    })
}

3. B组件(发送方),触发 Bus实例 的事件

javascript 复制代码
Bus.$emit('sendMsg', '这是一个消息')

代码示例:

(1). src / utils / EventBus.js 创建事件总线

javascript 复制代码
// 1.创建一个都能访问到的事件总线 (空的 Vue 实例)
import Vue from 'vue'

const Bus = new Vue()

export default Bus

(2). 创建发送者和接受者组件

(3). App.vue 引入渲染

html 复制代码
<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>
相关推荐
_院长大人_19 小时前
Vue + ECharts 实现价格趋势分析图
前端·vue.js·echarts
疯笔码良19 小时前
【Vue】自适应布局
javascript·vue.js·css3
三原21 小时前
超级好用的三原后台管理v1.0.0发布🎉(Vue3 + Ant Design Vue + Java Spring Boot )附源码
java·vue.js·开源
之歆21 小时前
RBAC权限模型设计与实现深度解析
vue.js
前端Hardy1 天前
Vue 项目必备:10 个高频实用自定义指令,直接复制即用(Vue2 / Vue3 通用)
前端·javascript·vue.js
懒大王95271 天前
Vue 2 与 Vue 3 的区别
前端·javascript·vue.js
xuankuxiaoyao1 天前
vue.js 实践--侦听器和样式绑定
前端·javascript·vue.js
小沐°1 天前
vue3+element-plus 实现动态菜单和动态路由的渲染
前端·javascript·vue.js
ct9781 天前
Vue3 状态管理方案:Pinia 全指南
javascript·vue.js
Java小卷1 天前
前端表单构建神器 - formkit初体验
vue.js·低代码