兄弟组件间的传值 - $bus

vue兄弟组件之间传值的两种办法 效果展示 第一种办法 通过事件总线bus传值 再main.js里首先声明 Vue.prototype.$bus=new Vue(); 父组件 <template> <div> <child1></child1> <child2></child2> </div> </template> <script> import child1 from './us 阅读详情

兄弟组件间的传值 - $bus

兄弟组件之间的传值方式有很多,例如很方便的 vuex,或者通过传父组件再传兄弟组件,这里介绍 vue 中的 $bus 的使用方法

首先在 main.js 中创建一个新 vue 实列

import Vue from 'vue'
import App from './App'
import router from './router'

import Vant from 'vant';
import 'vant/lib/index.css';

Vue.prototype.$bus = new Vue({

})  //创建一个 vue 实例,将 $bus 注册到 vue 的 prototype 上

new Vue({
  router,
  Vant,
  render: h => h(App)
}).$mount('#app')

创建 brother.vue 文件作为要传入的兄弟组件

<template>
    <div>
        我是兄弟组件
    </div>
</template>
<script>
export default {
    created(){
        this.$bus.$on('fun',this.brotherL)  //监听事件 fun,定义自己的方法 brotherL 来获取传递过来的值
    },
    methods: {
        brotherL(e){
            console.log(e)  //打印兄弟组件传过来的值
        }
    }
}
</script>

再创建 child.vue 作为子组件,它的兄弟组件就是 brother

<template>
    <div>
        我是孩子组件
        <button @click="sayLove()">向兄弟表白</button>  //绑定传值方法,点击按钮触发 sayLove方法
    </div>
</template>
<script>
export default {
    data(){
    },
    methods:{
        sayLove(){
            this.$bus.$emit('fun','i love u')  //向兄弟组件发布事件 fun,传递参数为 i love u
        }
    }
}
</script>

在父组件中注册 child 和 brother 组件

<template>
<div id="app">
  <Child></Child>
  <Brother></Brother>
    <router-view/>
</div>
</template>
<script>
import Child from './components/child.vue'
import Brother from './components/brother.vue'
export default {
  name: 'App',
  components:{
    Child,
    Brother
  }
}
</script>

点击按钮,打印 i love u
在这里插入图片描述
在 vue.prototype 中注册 $bus 事件用于兄弟组件传值,本质上是一个发布订阅的模式:

emit — 发布消息,通知订阅中心有数据更新,也就是发射事件
on — 添加订阅者,也就是监听事件

相关推荐

EV1527 vs HS1527:固定码芯片的STM32解码避坑指南

本文深入解析EV1527与HS1527固定码芯片的技术差异,提供基于STM32的完整解码方案与稳定性优化策略。通过硬件接口配置、状态机实现及示波器诊断,解决工业遥控、安防报警等场景中的解码难题,特别针对时序差异和干扰问题给出实用解决方案。

o0p1q2r3的博客 331

Vue兄弟组件间利用bus传值

1、在main.js中new一个Vue对象,并挂载到Vue原型上面,即$bus 2、在需要传值的地方,利用this.bus.bus.bus.emit()方法发送需要传递的值,第一个参数就是一个唯一标识(key),第二个参数就是要传递的数据(不限类型)(value) 3、在接收数据的组件中,在mounted中编写接收方法,即使用this.bus.bus.bus.on方法。第一个参数就是唯一标识(key)需要和发送数据的地方的key一样,第二个参数就是一个回调函数,res就是传递过来的值,通过res就能拿到

dongwei666的博客 742

opencv去除印章痕迹

今天看到一个很有意思的程序,就是去除票据上的红色印章,觉得很有意思,就把它抄过来记录一下,同时自己也开了一下脑洞。 原来的程序来自:https://www.cnblogs.com/skyfsm/p/7638301.html 可以看到图像效果很不错,下面是源码实现: #include &lt;iostream&gt; #include &lt;opencv2/imgproc/imgpro...

zeng_haoyu的博客 7957

Vue 25 ,⭐Vue2兄弟组件传值,Vue2兄弟组件通讯的两种方式,详细过程( Vue2同级别组件传值通讯,Vue2兄弟组件通讯传值常用 )

⭐在 Vue.JS 中,兄弟组件之间的通信由于缺乏直接的父子关系而变得相对复杂。然而,Vue提供了多种机制来实现这种同级组件间的有效数据共享与通信。Vue2常见的方法包括使用事件总线(Event Bus)或 Vuex 状态管理库,这些方案能够帮助我们轻松地在没有直接关联的组件之间传递信息和状态,确保应用逻辑的一致性和可维护性。兄弟组件,就是同级别的组件。

AI Agent 全栈架构师(AI + GIS + Backend)& 数字芯片系统架构师(FPGA),NorthCity Smile的博客(NcSmile,博主域名:https://ncmile.blog.youkuaiyun.com) 9880

STM32驱动2.8寸TFTLCD屏幕实战:从看懂原理图到点亮第一个像素(基于ILI9341)

本文详细介绍了如何使用STM32驱动2.8寸TFTLCD屏幕(基于ILI9341驱动芯片),从硬件连接到软件配置,包括FSMC接口设置、ILI9341初始化序列、坐标设置及基础绘图函数实现。文章还提供了常见问题排查指南和性能优化技巧,帮助开发者快速解决屏幕不亮等问题,并提升显示性能。

weixin_42665255的博客 267

华为OD机试双机位C卷-魔法收积木 (C/C++/Py/Java/Js/Go)

华为OD机试(机考)双机位C卷 【魔法收积木】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为od - 魔法收积木。

qq_45776114的博客 1940

兄弟组件之间的传值(bus、vuex、根对象)三种方法详解

有时候两个组件也需要通信(非父子关系),当然Vue2.0提供了Vuex,但在简单的场景下,可以使用一个空的Vue实例作为中央事件总线。 方法一:用eventBus <div id="app"> <c1></c1> <c2></c2> </div> var Bus = new Vue(); //为了方便将Bus(空vue)定义在一个组件中,在实际的运用中一般会新建一Bus.js Vue.component('c1',

浮游的博客 1609

调用魔搭API出现Please bind your Alibaba Cloud account before use的解决方案

本文主要介绍了调用魔搭API出现Please bind your Alibaba Cloud account before use解决方案,希望能对使用大模型的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 3万+

vue组件之间的传值(兄弟间的传值)

概要:vue组件之间的传值大致有三种:父传子,子传父,还有兄弟之间,今天我们主要来讲兄弟之间的传值。废话不多说,我们直奔主题 vue 组件兄弟间的传值是要通过一个事件总线来实现(可以把事件总线理解为一个全局变量),他是做完一个兄弟之间的桥梁,总线的名称是可以随便来起的,但通常有几个固定的名字是人们看到都认识能识别到的,如下图: 这是两行模板一样的代码,第一行应用vue,第二行创建一个对象,事件总线就创建好了。 注:事件总线是js文件 接下来我们就可以直接用这个事件总线来搭起兄弟间的桥梁了,下面是个小例子,

忘缘 3005

pytorch实现基本的logistic和softmax回归实验(手动+torch)

前提:不是前馈神经网络,没有隐藏层。 一:Logistic回归实验–人工构造数据集,手动构造模型 要求: 动手从0实现logistic回归,实现二分类,人工构造数据集,并分析loss、训练集、测试集的准确率。(要求从零实现二元交叉熵) 实验过程: 1.1人工构造数据集 1. # #自定义数据---训练集 2. num_inputs = 2 3. n_data = torch.ones(1500, num_inputs) # 数据的基本形态 4. x1 = torch.normal(2 * n_d

qq_37534947的博客 1万+

假期搞定!2026国社科申报AI全攻略指南:从选题到创新,7大核心要点手把手教你!

最后给大家推荐的400多所高校教师都在用的AI平台——高级学术版专业应用平台,集成了国际主流学术应用,以及ChatGPT、Claude、Gemini、Grok等Al大模型的高级版本平台,还有,可以辅助大家高效完成科研和学术写作任务,当然撰写硕博论文,课题、职称论文、国社科、国自然基金本子也是手拿把掐。你的任务是:用高度凝练的方式说明在(某一明确国家战略 / 政策方向,如:中国式现代化、共同富裕、基层治理现代化、数字中国、文化强国、国家安全等)背景下,我究竟要研究一个什么“具体而可操作的问题”。

智能AI让学术科研更容易 624

组件传值方法--$bus的使用

不管组件之间是什么关系,都可以去使用。这个文件相当于一个中转站,使用$bus去传值非常方便。如果用props去父子传值,组件不刷新值也不会刷新,用$bus可以实时刷新组件内的值。 1.$bus文件的创建--bus.js import Vue from 'vue' export default new Vue() 2.$bus文件的引入 import Bus from '@/..' 3.$bus的使用 this.$Bus.$emit() //相当于上车 this.$Bus.$on() //相

@热血与梦想的博客 1385

C#上位机实战:手把手搭智慧工业数字孪生系统,从设备建模到实时联动全落地

字段长度(字节)说明起始标识2固定为0xAA55,用于判断数据包开始设备ID4唯一标识设备(比如1001代表电机1)数据类型10=布尔(启停),1=浮点数(转速/温度)数据长度4数据字节数(布尔1字节,浮点数4字节)数据内容N实际数据(按数据长度读取)校验位1前面所有字节的异或校验,防止数据篡改结束标识2固定为0x55AA,用于判断数据包结束。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 968

vue中兄弟组件间传值,$bus的使用

一、main.js Vue.prototype.$bus = new Vue() 二、路由1页面,也可是父路由 <template> <router-view></router-view> </template> export default { name: "father", mounted() { let _this = this //很关键是要把父路由的vue实例赋给_this this.$bus.

qq_45457134的博客 525

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Vue $Bus $on兄弟组件间传值

131

weixin_57396733的博客 461

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

vue组件传值

在父组件页面里 子组件标签写一个属性(父组件要传给子组件的值)在子组件定义props接受属性。

weixin_54976447的博客 221

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

vue3组件通信方式应用场景分析

注意:defineProps 、defineEmits 、 defineExpose 和 withDefaults 这四个宏函数只能在。Vue2 中子组件数据传递到父组件,通常是使用 $emit 触发一个自定义事件来进行传递。但 $emit 无法在。Vue3 中父组件同样是通过属性传递数据,但子组件接受数据的方式和 Vue2 不同。在vue3的中通过provide提供一个值,再由inject向后代注入。

qq_52648305的博客 364

vue 组件传值(二)$bus,$emit,$on

vue 组件传值(二)$bus,$emit,$on <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <script type="text/javascript" src="../node_modules

qq_40891322的博客 1124

vue父子、兄弟组件传值

1.父组件向子组件传值 父组件传值 <template> <div> <son :sonName="name" :sonTitle="title"></son> // 子组件 </div> </template> <script> import son from '../components/son' export default { data () { return {

weixin_42164004的博客 554

Vue2兄弟组件传值

bus。

weixin_43923808的博客 972

Vue 解决兄弟组件之间传值问题

vue中 父组件向子组件传递参数时,可以通过prop来传递参数,prop可以是数组形式,也可以是对象格式,子向父组件传递参数时,通过$emit来传递,$emit('方法名', 传参),来实现子组件和父组件数据交互,但是在父组件中,有好多个子组件,这些子组件怎么样来进行数据通讯呢? 有的同学会立马想到 vuex ,答案是:可以的,但是会不会大材小用?,在项目中,只是个别组件需要用到通讯,我们是不会优先考虑vuex来解决的。 下面我们可以使用一个特别好用的方法来实现兄弟组件之间数据通讯 bus.js 顾名

weixin_58882261的博客 8609

事件总线:vue中$bus的使用和涉及到的问题(兄弟组件之间传值)

$bus传值

bigdargon的博客 937

Vue 组间传值

父子传值 父组件 <template> <div> 这是父级页面 <child :child='string' v-bind='object' :arr='arr' :Function='Function' :number='number' /> </div> </template&gt...

weixin_43796856的博客 187

VUE 兄弟组件之间传值

Vue兄弟组件传值 创建一个公共实例文件 Bus.js import Vue from 'vue' const bus=new Vue() export default bus 子组件 A.vue <template> <div> <button @click='emitMessage'>传给兄弟组件信息</button> </div...

qq_29850249的博客 438

Vue组件通信(父传子、子传父、兄弟组件传值)

组件之间传参

scorpion_V的博客 773

vue 兄弟组件传值

先在main.js里定义一个新的实例 //定义$bus Vue.prototype.$bus=new Vue() 在子组件里自定义方法,通过$bus.$emit向兄弟组件传值 子组件 <template> <div> <h1>儿子组件</h1> <button @click="say">表达爱意</button> </div> </template> <script> export def

zjnkkl的博客 632
上一篇: 怎么画一条高 0.5px 的线
下一篇: vue-router 传值的三种方式
bubbleSweet
博客等级 码龄7年 14粉丝 70原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值