vue中使用bus进行组件间的通信

Posted zhongfang99

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue中使用bus进行组件间的通信相关的知识,希望对你有一定的参考价值。

在小项目中如果组件间层级嵌套很深的时候可以使用bus来调用其他组件的方法

代码实现:
1、新建一个bus.js文件,如下代码
import Vue from "vue"; export default new Vue();
2、在组件1中

<template>
  <div class="bus-brother1">
    <el-button @click.prevent="handleClick">我是组件1</el-button>
  </div>
</template>

<script>
import bus from "@/store/bus"
export default {
  data() {
    return {

    }
  },
  mounted() {
    bus.$on("busBrotherAlert1", () => {
      this.busBrotherAlert1()
    })
  },
  methods: {
    handleClick () {
      bus.$emit("busBrotherAlert2")
    },
    busBrotherAlert1() {
      alert(\'我是组件二调用组件一的方法\')
    }
  }
}
</script>

3、在组件2中

<template>
  <div class="bus-brother2">
    <el-button @click.prevent="handleClick">我是组件2</el-button>
  </div>
</template>

<script>
import bus from "@/store/bus"
export default {
  data() {
    return {
      
    }
  },
  mounted() {
    bus.$on("busBrotherAlert2", () => {
      this.busBrotherAlert2()
    })
  },
  methods: {
    handleClick() {
      bus.$emit("busBrotherAlert1")
    },
    busBrotherAlert2() {
      alert(\'我是组件一调用组件二的方法\')
    }
  }
}
</script>

以上是关于vue中使用bus进行组件间的通信的主要内容,如果未能解决你的问题,请参考以下文章

vue 2 使用Bus.js进行兄弟(非父子)组件通信 简单案例

vue 2 使用Bus.js进行兄弟(非父子)组件通信 简单案例

vue 2 使用Bus.js进行兄弟(非父子)组件通信 简单案例

vue-bus 组件通信插件

vue使用bus进行组件通信

Vue中的Bus(总线)实现非父子组件通信