码迷,mamicode.com
首页 > 其他好文 > 详细

vue兄弟组件的传值eventbus

时间:2019-12-14 11:41:04      阅读:172      评论:0      收藏:0      [点我收藏+]

标签:方式   blog   net   default   函数   art   lis   list   name   

注:当在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);
//this.busListen(value)//调用busListen这个方法
});

}
}
</script>
 

 

注:可以在main.js写(这是常用的方式)

Vue.prototype.bus = new Vue();
调用方法的时候直接书写以下代码就行

##~~a.vue

this.bus.$emit("bload");
##~~b.vue

mounted中写:

this.bus.$on("bload",this.bload);
methods中写:

methods:{
bload(){
}

原文链接:https://blog.csdn.net/xiasohuai/article/details/80664605

vue兄弟组件的传值eventbus

标签:方式   blog   net   default   函数   art   lis   list   name   

原文地址:https://www.cnblogs.com/huchong-bk/p/12038464.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!