vue开发:vue2.0父子组件及非父子组件之间的通信方法

从零开始搭建自己的VueJS2.0+ElementUI单页面网站(三、组件编写及通信) 前言本文是本系列的第三篇文章。在前两篇文章中我们介绍了关于搭建vue+elementUI开发环境的方法和编写导航页的方法。关于前两篇文章的内容,若读者有些记不清楚,可以点击下方链接快速查看: 从零开始搭建自己的VueJS2.0+ElementUI单页面网站(一、环境搭建) 从零开始搭建自己的VueJS2.0+ElementUI单页面网站(二、编写导航页) 阅读详情

1.父组件传递数据给子组件

父组件数据如何传递给子组件呢?可以通过props属性来实现

父组件:

?
1
2
3
4
5
6
7
8
<parent>
   <child :child-msg= "msg" ></child> //这里必须要用 - 代替驼峰
</parent>
data(){
   return {
     msg: [1,2,3]
   };
}

子组件通过props来接收数据:

方式1:

?
1
props: [ 'childMsg' ]

方式2 :

?
1
2
3
props: {
   childMsg: Array //这样可以指定传入的类型,如果类型不对,会警告
}

方式3:

?
1
2
3
4
5
6
props: {
   childMsg: {
     type: Array,
     default : [0,0,0] //这样可以指定默认的值
   }
}

这样呢,就实现了父组件向子组件传递数据.

2.子组件与父组件通信

那么,如果子组件想要改变数据呢?这在vue中是不允许的,因为vue只允许单向数据传递,这时候我们可以通过触发事件来通知父组件改变数据,从而达到改变子组件数据的目的.

子组件:

?
1
2
3
4
5
6
7
8
<template>
   <div @click= "up" ></div>
</template>
methods: {
   up() {
     this .$emit( 'upup' , 'hehe' ); //主动触发upup方法,'hehe'为向父组件传递的数据
   }
}

父组件:

?
1
2
3
4
5
6
7
8
<div>
   <child @upup= "change" :msg= "msg" ></child> //监听子组件触发的upup事件,然后调用change方法
</div>
methods: {
   change(msg) {
     this .msg = msg;
   }
}

3.非父子组件通信

如果2个组件不是父子组件那么如何通信呢?这时可以通过eventHub来实现通信. 
所谓eventHub就是创建一个事件中心,相当于中转站,可以用它来传递事件和接收事件.

?
1
let Hub = new Vue(); //创建事件中心

组件1触发:

?
1
2
3
4
5
6
<div @click= "eve" ></div>
methods: {
   eve() {
     Hub.$emit( 'change' , 'hehe' ); //Hub触发事件
   }
}

组件2接收:

?
1
2
3
4
5
6
<div></div>
created() {
   Hub.$on( 'change' , () => { //Hub接收事件
     this .msg = 'hehe' ;
   });
}

这样就实现了非父子组件之间的通信了.原理就是把Hub当作一个中转站!

以上所述是小编给大家介绍的vue2.0父子组件及非父子组件之间的通信方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。

vue2.0父子组件及非父子组件之间的通信方法 1.父组件传递数据给子组件 父组件数据如何传递给子组件呢?可以通过props属性来实现 父组件: <parent> <child child-msg=msg></child>//这里必须要用 - 代替驼峰 </parent> data(){ return { msg: [1,2,3] }; } 子组件通过props来接收数据: 方式1: props: ['childMsg'] 方式2 : props: { childMsg: Array //这样可以指定传入的类型,如果类型不对,会警告 } 方式3: props: { childMsg: { t 立即下载

相关推荐

别再用MounRiver了!在VSCode里用PlatformIO搞定CH32V208开发(附完整配置流程)

本文详细介绍了如何在VSCode中使用PlatformIO进行CH32V208开发,替代传统的MounRiver Studio。通过完整的配置流程和优化技巧,开发者可以构建高效、现代化的RISC-V开发环境,显著提升编译速度和开发效率。

weixin_28711397的博客 532

vue2.0父子组件以及非父子组件如何通信

1.父组件传递数据给子组件父组件数据如何传递给子组件呢?可以通过props属性来实现父组件:<parent> <child :child-msg="msg"></child>//这里必须要用 - 代替驼峰 </parent>data(){ return { msg: [1,2,3] }; }子组件通过props来接收数据: 方式1:props: ['chil

mr_fzz的博客 10万+

QT5.14.2离线安装包保姆级教程:断网、选组件、避坑全记录

本文详细介绍了QT5.14.2离线安装包的完整流程,特别针对Windows平台开发者提供断网安装、组件选择及避坑指南。作为QT5系列中最后一个免费离线版本,5.14.2具有免注册、全组件离线安装等独特优势,是开源开发者的理想选择。文章涵盖从环境准备到安装后配置的全方位指导,帮助开发者高效完成安装并避免常见问题。

weixin_30924087的博客 576

【VUE】vue父子组件通信 以及 非父子组件通信的方法

Part1:父子组件父组件给子组件传值不需要使用其他库,可以直接使用props传值,talk is cheap,show me the code!Parent.vue&lt;template&gt; &lt;div class="hello"&gt; &lt;h1 @click="changeMsg"&gt;click send message to child by props&lt...

李小白的博客 3372

Qt QChart实战:从零打造一个实时温度监控仪表盘(附完整源码)

本文详细介绍了如何使用Qt QChart模块从零构建一个工业级实时温度监控仪表盘。通过实战案例,展示了波形图的绘制、坐标轴配置、数据流模拟等关键技术,并提供了完整的源码实现,帮助开发者快速掌握Qt在数据可视化领域的应用。

weixin_42537919的博客 242

基于AOD-Net与GAN的深度学习去雾算法开发

本文提出一种结合AOD-Net与GAN的深度学习去雾算法。通过改进的AOD-GAN网络架构,集成风格迁移模块,设计包含对抗损失、内容损失和风格损失的复合目标函数。实验表明,该方法在PSNR(24.67)、SSIM(0.92)和FID(32.15)指标上优于传统方法,实现了端到端的物理模型引导图像去雾。未来将优化多尺度特征融合和轻量化部署。

huanghm88的专栏 593

vue非父子组件通信 (两个不同的组件通信)

vue非父子组件通信 (两个不同的组件通信)

Bright2017的博客 5413

【20260309】【亲测可用】【异常】Get https://registry-1.docker.io/v2/: net/http: request canceled

【异常】Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection。

奶爸的编程之路,也就一周冷个三天 2万+

vue如何实现父子组件通信,以及非父子组件通信(待看)

https://vuefe.cn/v2/guide/components.html# 非父子关系 var vm = new Vue({ el: '#list', ready: function(){ var _this = this; var url = 'http://192.168.1.111:8080/api/v2/getCommonCourses';

melody_day的博客 4294

一步一步教你如何安装IP-Guard(客户端WINDOWS篇)

1、安装完服务器后,在服务器右下角有一个IP-GUARD图标:如图 2、点图标右键选注册: 3、注册成功后, 4、在开始菜单里选生成客户端安装包。 5、生成客户端安装包成功,安装名字可以任意,但是最好是英文名字。 6、将客户端安装程序复制到桌面。 7、退出所有杀毒软件、安全卫士、电脑管家等然后运行 8、安装完成后,立即重启计算机。IPguard客户端安装完成。 9、这样在控制里就可以看到已经安装客户端的计算机,在线显示蓝色,灰色表示计算机已经离线货关机 ...

IP-Guard专栏 5621

使用Python与OpenCV实现基于霍夫变换的圆形缺陷检测与定位详细教程

本文详细探讨了如何使用Python和OpenCV库,通过图像边缘检测和霍夫变换实现圆形对象的检测与缺陷定位。我们不仅介绍了算法的基本原理,还通过具体的代码示例展示了如何在实际应用中实现这些技术。对于工业检测和医学影像分析,本文的方法提供了高效且易于实现的解决方案。随着图像处理技术的不断发展,未来我们可以期待更多新算法和新技术的应用,如深度学习与传统方法的结合,以及多传感器融合技术的引入,这将进一步提升缺陷检测与定位的效率和准确性。

qq_38334677的博客 1295

Vue2.0的八种常用传值方式、父传子、子传父、非父子组件传值(最完整)

Vue2.0 传值方式: 在Vue的框架开发的项目过程中,经常会用到组件来管理不同的功能,有一些公共的组件会被提取出来。这时必然会产生一些疑问和需求?比如一个组件调用另一个组件作为自己的子组件,那么我们如何进行给子组件进行传值呢?如果是电商网站系统的开发,还会涉及到购物车的选项,这时候就会涉及到非父子组件传值的情况。当然你也可以用Vuex状态管理工具来实现,这部分我们后续会单独介绍。 ...

qq_36711388的博客 1万+

GIS常用符号化色带(超级色带)根据python制作

GIS自带的色带比较单一,今天分享一款色带,应用之后大家出图的时候可以选择更多的配色,符号化/点击色块/样式引用/将样式添加至列表即可。色带类型比较多,大家可以自己尝试下不同的风格。简单符号化一下,看看效果。以中国县级行政区划为例,

J_Giser的博客 2637

Vue中非父子组件通信的方法

Vue中组件通信的主要方式包括:props传递、事件监听、自定义事件、全局事件总线、Vuex状态管理、ref引用等。然而,当涉及到跨越多个层级的组件或者是没有直接父子关系的组件时,就需要采用更为灵活的通信方式。虽然这种方法主要用于父子组件通信,但在某些情况下也可以通过巧妙的设计来实现非父子组件间的通信。例如,一个组件可以作为中介,接受其他组件的输入并通过插槽传递出去。} } };} } };

一个做过前端开发的产品经理,经历过睿智产品的折磨导致脱发之后,励志要翻身"农奴"把歌唱,一边打入敌人内部一边持续提升自己,为我们广大开发同胞谋福祉,坚决抵制睿智产品折磨我们码农兄弟! 1542

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

vue2-0父子组件以及非父子组件通信传参详解

写在前面 之前每次写项目的时候老是忘记vue的组件之间的传参,很不方便,每次都是现查,趁着这次折腾非父子组件的传参,学习记录下来,以方便以后学习使用。 1.父组件传递数据给子组件 父组件写法 <parent> <child :child-msg="msg"></child>//这里必须要用 - 代替驼峰 </parent> data(...

郝峰vip的博客 540

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Vue2(组件开发)

请大家多多指教

passerby的博客 3045

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Vue2.0的父传子、子传父、非父子组件传值

Vue2.0 传值方式: 在Vue的框架开发的项目过程中,经常会用到组件来管理不同的功能,有一些公共的组件会被提取出来。这时必然会产生一些疑问和需求?比如一个组件调用另一个组件作为自己的子组件,那么我们如何进行给子组件进行传值呢?如果是电商网站系统的开发,还会涉及到购物车的选项,这时候就会涉及到非父子组件传值的情况。当然你也可以用Vuex状态管理工具来实现,这部分我们后续会单独介绍。我先给大家介绍Vue开发中常用的三种传值方式。 Vue常用的三种传值方式有: 父传子 子传父 非

qq_23049221的博客 197

vue2.0父子组件以及非父子组件之间通信

1.父组件传递数据给子组件父组件数据如何传递给子组件呢?可以通过props属性来实现父组件:&lt;parent&gt; &lt;child :child-msg="msg"&gt;&lt;/child&gt;//这里必须要用 - 代替驼峰 &lt;/parent&gt; data(){ return { msg: [1,2,3] }; }子组件通过pro...

俊人呀的博客 310

Vue组件间的传值——父子组件、非父子组件、组件跳转传值

一、父子组件之间的传值( props down, events up ) (1)父组件到子组件(通过props) 父组件:(在注册声明的子组件上加 :xxx 表示要传递到子组件的参数或方法) <template> <div class="wrap"> <!-- 要传递的参数和方法, 静态prop值直接添加占位符(name(数字除外,...

南乔几经秋、的博客 1450

vue开发:vue父子组件与非父子组件之间的通信

之前关于vue.js2.0父组件的一点学习,最近需要回顾,就顺便发到随笔上了 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

Generon的博客 1496

vue非父子组件间的传值

vue非父子组件传值的基本语法 创建一个新的vue对象 var newvue = new Vue() 触发事件 newvue.$emit('自定义事件名', 参数) 监听事件 newvue.on('自定义事件名', 触发方法名) 销毁事件 newvue.off('自定义事件名') 案例 放在html页面上即可显示,注意要引入vue <!DOCTYPE html> <htm...

前端爆米花 3260

vue3组件之间的通信方式

vue3组件之间的通信方式

H_ZMY的博客 3786

vue组件间通信

本章我们将介绍组件间是如何实现数据通信的。包括父组件向子组件、子组件向父组件、兄弟组件、非关系组件之间的数据通信。组件通信是组件式开发中非常重要的一部分,也是组件式开发中的难点。在学完本章之后,同学们可以通过反复地编写组件来加深印象。组件是 vue 最强大的功能之一,而组件实例的作用域是相互独立的,这就意味着不同组件之间的数据无法相互引用。我们需要使用特定的方式来实现组件间的数据通信,接下来让我们一个个介绍这几种类别的组件通信是如何实现的。

江拥羡橙的博客 3万+

非父子组件之间通信

原始方法是新new一个vue空实例作为中央事件总线bus但是比较 麻烦有兴趣的可以搜一下看看,这里不再说了。 下面提供两种方便的方法 一、父链 在子组件中,使用this.$parent可以直接访问该组件的父实例或组件 在父组件中,也可以通过this.$childen访问他的所有组件而且可以递归向上或者向下无限访问,知道根实例或最内层的组件 示例代码如下: 这里用的HbuilderX快速新建Vue工程模板 新建完成就是这样的,添加测试子组件,这里用App.vue作为父组件。 父组件:App.v

何时林听@ 514

vue组件之间的通信(数据的传递)

组件设计初衷就是要配合使用的,最常见的就是形成父子组件的关系:组件 A 在它的模板中使用了组件 B。它们之间必然需要相互通信:父组件可能要给子组件下发数据,子组件则可能要将它内部发生的事情告知父组件。然而,通过一个良好定义的接口来尽可能将父子组件解耦也是很重要的。这保证了每个组件的代码可以在相对隔离的环境中书写和理解,从而提高了其可维护性和复用性。 在 Vue 中,父子组件的关系可以总结为 

ksyjy的博客 4389
上一篇: vue开发:Vue 非父子组件通信方法(非Vuex)
下一篇: vue开发:vue实现百度搜索下拉提示功能
Generon
博客等级 码龄11年 135粉丝 135原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值