vue兄弟组件的传值bus

兄弟组件通信通过bus,新建一个bus.js文件,并在两个组件分别引入

注:当在a.vue组件上触发点击事件时,就会触发bus上监听的事件,而bus事件监听在b.vue里面,这个时候就会触发b.vue

上的事件监听,而通过回调函数,就可以拿到a.vue组件传过来的数据,从而实现兄弟组件通信。


bus.js

import Vue from "vue"  
export default new Vue()

parent.vue父组件

<template>  
  <div id="app">  
    <avue></avue>  
    <bvue></bvue>  
  </div>  
</template>  
  
<script>  
import avue  from "./avue.vue"  
import bvue  from "./bvue.vue"  
export default {  
  name: 'parentvue',  
  components:{avue,bvue}  
}  
</script>  

a.vue组件

<template>  
  <div @click="aload">叶落森1</div>  
</template>  
<script>  
  import bus from "./bus.js"  
  export default{  
    methods:{  
      aload(){  
        //通过emit触发事件,并传值  
        bus.$emit("bload","我叫叶落森");  
      }  
    }  
  }  
</script>

b.vue组件

<template>  
  <div>叶落森2</div>  
</template>  
<script>  
  import bus from "./bus.js"  
  export default{  
    mounted(){  
      //通过on监听事件,回调方法获取数据  
      bus.$on("bload",value=>{  
        console.log(value);  
      });  
    }  
  }  
</script> 


猜你喜欢

转载自blog.csdn.net/xiasohuai/article/details/80664605