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>
相关推荐
sunbyte44 分钟前
50天50个小项目 (Vue3 + Tailwindcss V4) ✨ | GoodCheapFast(Good - Cheap - Fast三选二开关)
前端·javascript·css·vue.js·tailwindcss
拼图20911 小时前
element-plus——图标推荐
javascript·vue.js·elementui
midsummer_woo14 小时前
基于springboot+vue+mysql工程教育认证的计算机课程管理平台(源码+论文)
vue.js·spring boot·mysql
喝拿铁写前端15 小时前
技术是决策与代价的平衡 —— 超大系统从 Vue 2 向 Vue 3 演进的思考
前端·vue.js·架构
豆豆(设计前端)16 小时前
如何成为高级前端开发者:系统化成长路径。
前端·javascript·vue.js·面试·electron
苦瓜若叶睦16 小时前
Vue (Official) v3.0.2 新特性 为非类npm环境引入 globalTypesPath 选项
vue.js
springfe010117 小时前
模块与组件区别
javascript·vue.js
结衣结衣.17 小时前
Vue3入门-计算属性+监听器
前端·javascript·vue.js·vue·js
哎呦薇18 小时前
从开发到发布:手把手教你将Vue组件上传npm
前端·vue.js
用户38022585982418 小时前
vue3源码解析:生命周期
前端·vue.js·源码阅读