<blockquote>
Vue父子组件之间的传值我们会了之后,兄弟组件怎么传值呢
第一种思路是
子传父,父传子
第二种思路是
建立一个中转站
这里主要说第二种思路
首先新建一个js文件bus.js,我这里建在了assets下
bus.js里面写出如下代码
import Vue from 'Vue'
export default new Vue;
然后在子组件a中传递参数给bus.js
<template>
<div @click="change">子组件a</div>
</template>
<script>
import Bus from '@/assets/js/bus.js' //一定要引入
export default {
data(){
isTrue:true
},
methods:{
change(){
this.isShow = !this.isShow; //改变布尔的值
Bus.$emit("change",this.isShow); //将改变之后的值通过自定义方法change传给中转站
//Bus.$emit("handle",value1,value2...); //可以传多个值
}
}
}
</script>
然后在子组件b中接受兄弟组件传过来的值
created(){
// 子组件b通过自定义方法change接收子组件a传过来的值
Bus.$on("change", (val,val1) => {
console.log(val,val1)
});
},