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

1.作用

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

2.步骤

  1. 创建一个都能访问的事件总线 (空Vue实例)

    import Vue from 'vue'
    const Bus = new Vue()
    export default Bus
  2. A组件(接受方),监听Bus的 $on事件

    created () {
      Bus.$on('sendMsg', (msg) => {
        this.msg = msg
      })
    }
  3. B组件(发送方),触发Bus的$emit事件

    Bus.$emit('sendMsg', '这是一个消息')

3.代码示例

EventBus.js

import Vue from 'vue'
const Bus  =  new Vue()
export default Bus

BaseA.vue(接受方)

<template>
  <div class="base-a">
    我是A组件(接收方)
    <p>{
  {msg}}</p>  
  </div>
</template>
​
<script>
import Bus from '../utils/EventBus'
export default {
  data() {
    return {
      msg: '',
    }
  },
}
</script>
​
<style scoped>
.base-a {
  width: 200px;
  height: 200px;
  border: 3px solid #000;
  border-radius: 3px;
  margin: 10px;
}
</style>

BaseB.vue(发送方)

<template>
  <div class="base-b">
    <div>我是B组件(发布方)</div>
    <button>发送消息</button>
  </div>
</template>
​
<script>
import Bus from '../utils/EventBus'
export default {
}
</script>
​
<style scoped>
.base-b {
  width: 200px;
  height: 200px;
  border: 3px solid #000;
  border-radius: 3px;
  margin: 10px;
}
</style>

App.vue

<template>
  <div class="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>

4.总结

1.非父子组件传值借助什么?

2.什么是事件总线

3.发送方应该调用事件总线的哪个方法

4.接收方应该调用事件总线的哪个方法

5.一个组件发送数据,可不可以被多个组件接收

相关推荐

  1. CodeWF.EventBus:轻量级事件总线,让通信更流畅

    2024-02-22 03:42:03       11 阅读
  2. Vue3父子组件通信

    2024-02-22 03:42:03       39 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-02-22 03:42:03       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-22 03:42:03       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-22 03:42:03       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-22 03:42:03       18 阅读

热门阅读

  1. html中如何给input输入框这个一个默认值

    2024-02-22 03:42:03       29 阅读
  2. 【接口设计】注册登录接口开发设计中注意细节

    2024-02-22 03:42:03       28 阅读
  3. pytroch笔记

    2024-02-22 03:42:03       32 阅读
  4. 力扣-217. 存在重复元素

    2024-02-22 03:42:03       25 阅读
  5. Rust语言之异步写文件

    2024-02-22 03:42:03       28 阅读
  6. 炫技亮点 优雅处理数据流程 过滤器模式

    2024-02-22 03:42:03       28 阅读
  7. 类和对象 下(再谈构造函数 static成员 友元)

    2024-02-22 03:42:03       32 阅读
  8. 【Linux 内核源码分析】内存管理——Slab 分配器

    2024-02-22 03:42:03       29 阅读