vue兄弟组件的传值eventbus

注:当在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

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

时间: 2024-07-31 17:38:52

vue兄弟组件的传值eventbus的相关文章

vue 兄弟组件的传值

handleLetterClick方法,采用emit 传递给父组件 父组件触发的方法: handleLetterChange方法: 父组件传递给子组件: CityList组件: 兄弟组件的传值可以先将值传递给父组件,然后由父组件传递给兄弟组件 2018-06-12    19:52:08 原文地址:https://www.cnblogs.com/guangzhou11/p/9174795.html

vue父子组件之间传值

vue父子组件进行传值 vue中的父子组件,什么是父组件什么是子组件呢?就跟html标签一样,谁包裹着谁谁就是父组件,被包裹的元素就是子组件. 父组件向子组件传值 下面用的script引入的方式,那种vue-cli搭建的同理 父组件通过 v-bind:属性名(自定义的) = "要传递的数据" 子组件通过 props:["属性名"]  这个属性名就是父组件传递过来的数据信息 <div id="app"> <mod :abc=&qu

vue父子组件的传值总结

久违的博客园我又回来了.此篇文章写得是vue父子组件的传值,虽然网上已经有很多了.写此文章的目的就是记录下个人学习的一部分.接下来我们就进入主题吧! 在开发vue项目中,父子组件的传值是避免不掉的. 情况一:父组件给子组件传值方法,使用props 父页面:parent.vue 1 <template> 2 <div class="sidebar_contianer"> 3 <sidebar-item :routerData="transmitDa

vue的组件通讯 父传子 -- 子传父-- 兄弟组件的传值 vue的组件传值

首先文字简单撸一下 父子传子   -------首先在父组件上绑定一个属性,在子组件里用props接收,可以是数组或者是对象 子传父   ------在父组件升上自定义一个方法,在子组件里通过this.$emit("父组件上的方法名",a)     /-------a------/代表需要传递的参数        兄弟组件通讯   需要创建一个公共的vue 实例, new vue()    在main.js里 书写Vue.prototype .com=new vue()    通过pr

vue 兄弟组件相互通信

兄弟组件之间相互传递数据 首先创建一个vue的空白实例(兄弟间的桥梁) 两个兄弟之间建立一个js文件 import Vue from 'vue' export default new Vue() 子组件 childa发送方使用 $emit 自定义事件把数据带过去 <template> <div> <span>A组件->{{msg}}</span> <input type="button" value="把a组件数据传

vue兄弟组件传值

<!DOCTYPE html><html><head> <title>父子组件</title> <script type="text/javascript" src="vue 2.js"></script></head><body><div id="box"> <com-a></com-a> <co

Vue中兄弟组件间传值-(Bus/总线/发布订阅模式/观察者)

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <div id="root"> <child content="Nay"></child> &

总结vue中组件相互传值的几种方式

子向父方式1:通过props,如例子中子组件test1.vue向父组件App.vue传值 App.vue代码 <template> <div id="app"> <test1 :parfn="parfn"></test1> </div> </template> <script> import test1 from '@/components/test1.vue' export def

vue兄弟组件传递数据

在main.js里面设置data{eventHub:new Vue() } new Vue({ el: '#app', router, store, template: '<App/>', components: { App }, data:{ eventHub:new Vue() // 在main.js设置所有组件都能用调用 }, }) 我们再组件一设置一个事件调用组件二的事件,传递数据给组件二 <template> <div v-on:click="on()&q