兄弟组件之间传值

Posted bingchenzhilu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了兄弟组件之间传值相关的知识,希望对你有一定的参考价值。

有的项目中,需要使用多个子组件,当需要传递值的时候,较为麻烦,怎样实现呢

1,一般可以使用子组件a传递给父组件,再由父组件传递给子组件b。但是一般较为麻烦,

2,使用bus作为中介,来传递ab组件之间的值

首先,创建bus.js文件,一般在src目录下,

import Vue from ‘vue‘;
export default new Vue;

其次,在组件a中,(只是截取部分代码,此处仅有触发传递的代码)

  <el-button  @click="edit(item.id)" >查看更多</el-button>

 edit() 函数

引入

import Bus from "@/bus.js";

  按照自己写的路径引入即可

edit(id){
      Bus.$emit("businessId", id);
      this.$router.push({ path: `/admin/editbusiness/${id}` });
      console.log(id);
    }

  (上面代码高亮部分是路由跳转一种写法,当router-link不够方便的时候,大多数可以使用$router.push,但是$router.push也有弊端,比如下面代码所示,因此使用上述高亮代码可完美解决

  this.$router.push({ path: ‘/admin/editbusiness‘,query:{id:1}});
  this.$router.push({ name: ‘business‘,params:{id:1}});

b组件

首先

引入

import Bus from "@/bus.js";

创建一个函数,接收拿到的数据

 getAData(val) {
      console.log(val);
    },

  在mounted中触发

  Bus.$on("businessId", this.getAData);

  以上就是父子组件之间的传值,如有更好的方法,欢迎交流指正

 

以上是关于兄弟组件之间传值的主要内容,如果未能解决你的问题,请参考以下文章

vue组件之间的五种传值方法(父子兄弟跨组件)

《vue- 兄弟组件之间的通信传值》

事件总线bus解决兄弟组件之间的传值

兄弟组件怎么粘在一起css

VUE_03 组件化思想全局|局部注册组件之间传值(父传子子传父兄弟传兄弟)匿名|具名|作用域插槽

uniapp和vue组件之间的传值方法(父子传值,兄弟传值,跨级传值,vuex)