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>
相关推荐
丁婷婷3 小时前
Reflect 在 Vue3 响应式中的作用是什么?
vue.js
吃西瓜的年年4 小时前
vue3原理思维导图
vue.js·笔记·flutter
Z小明4 小时前
第 1 章 Vite 项目初始化
前端·vue.js
合橱瑰4 小时前
Vue3 与 ElementPlus 前端常见错误修复实践
前端·vue.js
风之舞_yjf4 小时前
Vue基础(35)_全局事件总线(GlobalEventBus)
前端·vue.js
程序员小八7774 小时前
后端转全栈:前端思维转变(Vue 视角)
前端·vue.js·状态模式
宿6745 小时前
vue3-vite
前端·vue.js
单线程_0113 小时前
从案例分析 Vue3 Tokenizer 源码一
前端·javascript·vue.js
liangshanbo121517 小时前
Vue 3 <script setup> 的本质原理是什么?它与普通 setup()有何区别?
前端·javascript·vue.js
ji_shuke21 小时前
Vue 3 使用 History 哨兵和 popstate 拦截浏览器返回
前端·javascript·vue.js·history·哨兵·popstate