vus-bus通信

        vue中可使用bus实现组件间的通信,本文内容为简单案例,即在组件test1中调用组件test2的方法busBrotherAlert2。 

 

1、全局设置main.js

var eventBus = {
  install (Vue, options) {
    Vue.prototype.$bus = new Vue()
  }
};
Vue.use(eventBus);

2、组件test1

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

<script>
export default {
  name: "test1",
  data() {
    return {};
  },
  methods: {
    handleClick() {
      this.$bus.$emit("busBrotherAlert2", "test");
    },
  },
};
</script>

3、组件test2

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

<script>
export default {
  name: "test2",
  data() {
    return {};
  },
  mounted() {
    this.$bus.$on("busBrotherAlert2", (msg) => {
      this.busBrotherAlert2(msg);
    });
  },
  methods: {
    busBrotherAlert2(msg) {
      console.log(msg);
      alert("我是组件一调用组件二的方法");
    },
  },
};
</script>

4、test.vue

        在test中引入test1、test2

<template>
  <div>
    <test1></test1>
    <test2></test2>
  </div>
</template>

<script>
import test1 from "./test1.vue";
import test2 from "./test2.vue";
export default {
  name: "test",
  components: {
    test1,
    test2,
  },
  data() {
    return {};
  },
};
</script>

5、配置路由index.js

import Vue from 'vue'
import Router from 'vue-router'
Vue.use(Router)

const router = new Router({
 routes: [
    ......

    {
      path: "/test",
      component: () => import('../views/chart/test.vue'),
    },

    ......
  ]
})

export default router

 6、推荐

vue中使用bus进行组件间的通信 - zhongfang99 - 博客园

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值