layer中嵌套的页面如何操作父页面_vue中8种组件通信方式,值得收藏

有不少网友提出组件之间通信方式还有很多, 这篇文章便是专门总结组件之间通信的

vue是数据驱动视图更新的框架, 所以对于vue来说组件间的数据通信非常重要,那么组件之间如何进行数据通信的呢? 首先我们需要知道在vue中组件之间存在什么样的关系, 才更容易理解他们的通信方式, 就好像过年回家,坐着一屋子的陌生人,相互之间怎么称呼,这时就需要先知道自己和他们之间是什么样的关系。 vue组件中关系说明:

9fe2c72846a87b926230ee8249e639a1.png

如上图所示, A与B、A与C、B与D、C与E组件之间是父子关系; B与C之间是兄弟关系;A与D、A与E之间是隔代关系; D与E是堂兄关系(非直系亲属) 针对以上关系我们归类为:

  • 父子组件之间通信
  • 非父子组件之间通信(兄弟组件、隔代关系组件等)

一、props / $emit

父组件通过props的方式向子组件传递数据,而通过$emit 子组件可以向父组件通信。

1. 父组件向子组件传值

下面通过一个例子说明父组件如何向子组件传递数据:在子组件article.vue中如何获取父组件section.vue中的数据articles:['红楼梦', '西游记','三国演义']

// section父组件复制代码// 子组件 article.vue
{{item}}
复制代码

总结: prop 只可以从上一级组件传递到下一级组件(父子组件),即所谓的单向数据流。而且 prop 只读,不可被修改,所有修改都会失效并警告。

2. 子组件向父组件传值

对于$emit 我自己的理解是这样的: $emit绑定一个自定义事件, 当这个语句被执行时, 就会将参数arg传递给父组件,父组件通过v-on监听并接收参数。 通过一个例子,说明子组件如何向父组件传递数据。 在上个例子的基础上, 点击页面渲染出来的ariticle的item, 父组件中显示在数组中的下标

// 父组件中

{{currentIndex}}

复制代码
{{item}}
复制代码
// 父组件中
{{msg}}
点击改变子组件值
复制代码// 子组件中
{{messageA}}

获取父组件的值为: {{parentVal}}

复制代码

要注意边界情况,如在#app上拿$parent得到的是new Vue()的实例,在这实例上再拿$parent得到的是undefined,而在最底层的子组件拿$children是个空数组。也要注意得到$parent和$children的值不一样,$children 的值是数组,而$parent是个对象

总结

上面两种方式用于父子组件之间的通信, 而使用props进行父子组件通信更加普遍; 二者皆不能用于非父子组件之间的通信。

三、provide/ inject

概念:

provide/ inject 是vue2.2.0新增的api, 简单来说就是父组件中通过provide来提供变量, 然后再子组件中通过inject来注入变量。

注意: 这里不论子组件嵌套有多深, 只要调用了inject 那么就可以注入provide中的数据,而不局限于只能从当前父组件的props属性中回去数据

举例验证

接下来就用一个例子来验证上面的描述: 假设有三个组件: A.vue、B.vue、C.vue 其中 C是B的子组件,B是A的子组件

// A.vue

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/527457.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

镜头视场角计算工具_再谈远心镜头的设计及其独特的性能

1.远心镜头的设计与对比镜头可以分为非远心和远心;远心镜头也可以分为物方远心、像方远心和双远心。相关概念的简单说明:孔径光阑在物空间的像称为入射光瞳。同样,孔径光阑被其后面的光学零件成在像空间的像,称为出射光瞳。入射光…

collector list 多个分组_【S01E07】groupby方法、GroupBy对象、groupby方法的分组键

Hadley Wickham(许多热门R语言包的作者)创造了一个用于表示分组运算的术语"split-apply-combine"(拆分-应用-合并),这个词很好的描述了整个过程。分组运算的第一个阶段,pandas对象(无…

清理垃圾代码bat_来买个小内存u盘么咯?盘内带电脑垃圾清理.bat那种丨heibai.org...

在某宝个别店铺购买了小内存u盘到货后插入电脑,发现自带了一个名为电脑垃圾清理的小程序。对就是这货怀揣着这家店真好,还带了垃圾清理软件的想法,我试着运行了软件.但是好像没有卵用.正好小表弟好像对这个比较了解,我去问问他咋回…

射灯安装方法图解_家居射灯怎么选?第三代宜美SMD射灯给你正解

前段时间,刚把自己的房子完成硬装,在灯具选择的过程中,家人的意见就不太统一。其父母觉得选灯只要够亮就行,而媳妇觉得选灯选贵的才行。到底谁的选灯方法好呢?其实家人们的建议并不是完全不对,灯够亮只是其…

c标签判断true false jsp_北京尚学堂卓越班252天[第042天]——Jsp

1. JSP的核心运行原理1) 客户端浏览器发送请求到服务器,访问a.jsp文件。http://localhost:8989/应用名/a.jsp2) 服务器端接收到请求后所做的处理a) 创建request和response两个对象b) 根据请求中的应用名找到该应用下面的web.xml文件,发现该应用的配置文件…

js aes加密_某高考咨询网js逆向分析笔记

一、某高考资讯网逆向分析某网站的js加密分析,安全签名signsafe HmacSHA1 AES一年前分析过网站数据还没有加密,最近需要获取新的数据发现原先的爬虫失效,请求和响应都经过加密。于是重新分析,记录下分析思路以及分析过程中遇到的…

opencv 的norm_22、OpenCV用卷积Filter2D进行滤波器

迄今为止,看到的函数中,卷积的操作发生在OpenCV函数的内部。理论上,图像卷积就是将内核与图像覆盖区域对应位置相乘之后求和。从调用函数上来看,它需要一个数组参数来描述内核。在实践层面,有一个重要的微妙因素会对结…

glide加载gif图不显示动画_用Python绘制会动的柱形竞赛图

我们经常看到的Bar Chart Race(柱形竞赛图),可以看到数据的呈现非常的直观。今天就一起来学习下如何生成和上面一样的柱形竞赛图。1、导入Python库2、加载数据集这里使用的是城市人口数据集,加载我们想要的数据:其中&a…

不冲突的端口范围_网络中IP地址发生冲突故障怎么办

——————欢迎新老朋友们加入微信群,方便技术讨论,信息互通,行业交流:智能弱电行业专家群;智能弱电行业技术群;智能弱电行业信息群;申请加入请加小编微信:15537112161———————有朋友提…

项目结构_组织结构对项目影响系列课程---项目式组织结构

在前面的几篇文章中我们分别介绍了,系统型(简单型),职能型,弱矩阵,平衡矩阵,强矩阵结构的优点和缺点及它们带给项目的影响。今天我们介绍项目式组织结构的优点和缺点及其可能产生的影响。从结构…

第三范式的作用_钟启泉:教学范式的转型,让一线教师面临三大挑战 | 头条

培育“核心素养”的方法论——能动学习真实性的学习境脉所谓“能动学习”是“基于学习者的主体性参与与学习者之间能动的交互作用的学习而产生的”。它不是单纯记忆知识的学习,而是指学习者能够活跃地应对种种课题,并富有实感支撑的学习。基于“核心素养…

云服务器 管理控制台_关于小白如何初步管理自己的云服务器

博主在刚刚接触云服务器的时候,买的云服务是Linux系统的,反正是一脸懵,后来找了很多资料。所以博主认为步骤主要为以下几步第一步:如果买的是Linux系统将其重装成windows系统。以腾讯云服务器为例1.点击右上角的控制台2.进入买的云…

leetcode 贪心_利用贪心算法解LeetCode第1253题:重构2行二进制矩阵

题目描述给你一个 2 行 n 列的二进制数组:矩阵是一个二进制矩阵,这意味着矩阵中的每个元素不是 0 就是 1。第 0 行的元素之和为 upper。第 1 行的元素之和为 lower。第 i 列(从 0 开始编号)的元素之和为 colsum[i],col…

pgadmin连接服务器失败_增值税发票税控软件:连接服务器失败是否使用离线文件进行更新?...

增值税发票税控软件:连接服务器失败是否使用离线文件进行更新?第一步:确认本地电脑是否可以正常打开网页;打开电脑,网页查看一下是否可以正常上网,打开百度发现,可以正常上网。第二步&#xff1…

移除镜像_这是否是你心目中的英雄联盟手游?镜像地图。水晶塔,传送移除

自从5月29日之后,RIOT官方放出了英雄联盟手游最新开发者日志后。关于视频内展示的多个游戏关键内容。在玩家群体中引起了大量的争议和讨论。以下是争议和讨论最多的内容1.游戏内英雄的攻击是否为AOE伤害?在大多数的玩家心中,英雄联盟手游是不应该有这种…

电脑重启bootmgr_电脑出现bootmgr is missing怎么办

展开全部电脑开机,或者重启以后显示:Bootmgr is missing, 是代表硬盘的主引导记录(MBR)出错,从而导致无法引e68a8462616964757a686964616f31333337613931导系统,哪只能重建主引导记录,还有一个可能是丢失系统文件&…

qt 在label上以光标位置进行缩放_缩放|位移|渐变简单动画

本文简单介绍Qt的一些动画效果(缩放,位移,渐变)。缩放动画将窗口的geometry(位置,大小)属性作为动画参考实现缩放动画。代码QWidget *w new QWidget;w->setWindowTitle(QStringLiteral("缩放动画Qt君"));w->resize(320, 240)…

虚拟机中ubuntu可以使用显卡吗_在KVM下使用ubuntu19.10安装Anbox

导言:Anbox是一个Android模拟器,可以从linux系统运行Android应用程序或游戏。对于Anbox的安装已经有了各种教程,主要针对ubuntu18.04之前的版本。最近在做一个关于虚拟机中跑安卓的项目,因此在虚拟机中使用ubuntu18.04系统&#x…

mysql tree_MySQL树形遍历(二)

转载自:http://blog.csdn.net/dreamer0924/article/details/7580278英文原文:http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/预排序遍历树算法:modified preorder tree traversal algorithm这个算法有如下几个数据结构1 lft 代表左 left2 r…

mysql 常用数据库连接池_常见的数据库连接池

欢迎进入Java社区论坛,与200万技术人员互动交流 >>进入 2.C3P0 在Hibernate和Spring中默认支持该数据库连接池 需要引入:c3p0-0.9.1.2.jar包,如果报错再引入mchange-commons-0.2.jar 1. 在类路径下编写一个c3p0-config.xml文件 c3p0-co…