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>
相关推荐
w_t_y_y5 分钟前
vue父子组件通信(一)父子调用和通信(2)VUE3
前端·javascript·vue.js
Cheney95019 分钟前
Vue 项目字体文件打包后 fonts 文件夹“消失”?原因分析与解决方案
前端·javascript·vue.js
daols8828 分钟前
vxe-table 实现数据分组统计与表尾合计
前端·javascript·vue.js·vxe-table
向日的葵00630 分钟前
Vue 函数定义、事件绑定与列表渲染精讲
前端·javascript·vue.js
喵个咪11 小时前
GoWind Toolkit 前端代码生成|Vue3(ElementPlus/Vben)、React(AntDesign)全自动一键生成教程
前端·vue.js·react.js
qq_25183645712 小时前
SpringBoot+Vue 共享电池柜管理系统 完整实现 前后端分离项目实战 完整代码
vue.js·spring boot·后端
卤蛋fg616 小时前
vxe-table 实现数据分组统计与表尾合计
vue.js
鹏多多18 小时前
OpenSpec+SDD规范驱动AI Agent开发项目实战指南
前端·vue.js·react.js
wjj不想说话18 小时前
你项目里的 Pinia,可能已经成了第二个 localStorage
前端·vue.js
Cobyte21 小时前
15.响应式系统比对:链表在 Preact Signals 响应式系统中的应用
前端·javascript·vue.js