vue变量传值_Vue各类组件之间传值的实现方式

1、父组件向子组件传值

首先在父组件定义好数据,接着将子组件导入到父组件中。父组件只要在调用子组件的地方使用v-bind指令定义一个属性,并传值在该属性中即可,此时父组件的使命完成,请看下面关键代码:

:content="item"

v-for="item in list"

:key="item.id"

>

【解析】

上面代码中是导入进来的子组件,content是被v-bind指令定义的属性,当然不用v-bind指令定义也一样可以。只不过加了V-bind指令后,属性值就会被当做JavaScript表达式来解析,而不加v-bind指令就会被当做字符串解析。比如Boolean="false"和:Boolean="false"解析出来的结果是不同滴。如果还是有点迷糊,请来看完整源码

好了,下面我们来看看子组件此时要做的事情是什么?

首先在子组件中要使用关键词props接收父组件传递过来的属性,然后直接对这个属性动手动脚就行了,十分简单,在这直接上完整源码:

  • {{childItem}}
  • {{message}}

name: 'ChildrenOne',

props: ["content"],

data() {

return {

message: this.content.id

}

}

}

2、子组件向父组件传值

子组件向父组件传值这一个技术点有个专业名词,叫做“发布订阅模式”,很明显在这里子组件为发布方,而父组件为订阅方。根据这个专业名词,我们来看看子组件里面发生的事情。首先,需要触发子组件视图层里的某个事件,接着由该事件触发的方法中又使用关键方法$emit()发布了一个自定义的事件,并且能够传入相关的参数。子组件所要的事情就只有这么多,下面我们看看核心源码:

ChildrenOnclick() {

// 发布自定义事件

this.$emit("delete", this.index)

}

【解析】

上面代码中,当ChildrenOnclick方法被触发的时候,自定义了一个delete事件,并传入了相关参数this.index。这里是完整源码,能帮助你更好的理解。

在父组件中,只要订阅由子组件发布的自定义事件即可。只要子组件的自定义事件被触发,那么父组件就会执行相关的方法,下面是核心代码:

:content="item"

:index="index"

v-for="(item, index) in list"

:key="item.id"

@delete="handleParentClick"

>

【解析】

上面代码中,@delete是子组件自定义的事件,当该事件在子组件被触发的时候,那么handleParentClick这个方法就会被执行,请看完整的代码,以便更好的理解。

3、兄弟组件传值

这块我还不是灰常明白,只是知道大概如何去实现。首先在由vue-cli搭建起来的项目中的main.js创建一个事件总线,也就是中转站,作为通信的桥梁。核心代码如下:

// 建立中转站,实现组件与组件之间的传值

let bus = new Vue()

Vue.prototype.bus = bus

main.js完整代码请点击哦。

接着我们在发送方组件里面使用关键字$emit()定义一个自定义事件,并传入参数。核心代码如下:

methods: {

btnMessage() {

this.bus.$emit("ReceiveMessage", this.message)

}

}

【解析】

上面代码中,this.bus为在main.js里定义好的一个中转站变量,ReceiveMessage为自定义事件,this.message为定义好的参数,完整代码在此。

最后是接收方组件,只要使用this.bus.$on关键字就能够监听到发送方触发的事件,并在内部通过一个函数接收传入进来的参数,执行相关的动作,下面请看完整代码:

我是接收方组件,下面是接收到的信息

{{name}}

name: 'BrotherTwo',

data() {

return {

name: "我缺爱啊"

}

},

mounted() {

let self = this;

this.bus.$on("ReceiveMessage", function(item) {

self.name = item;

})

}

}

vue组件之间的传值介绍就到这了,有不妥的地方希望各位大佬能够指出。

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

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

相关文章

Linux常用指令自己备用

~ 和 / 的区别: ~ 是当前用户的目录地址 / 是根目录的地址(一般称呼为root,/ 和 /root/ 是有区别的) 当用户是root用户时 ~ 代表/root/,即根目录下的root目录 / 代表/ ,即根目录 当用户是jack用户时 ~…

『号外』 排名进入3000,特致感谢!

开博半个月来,老孙项目管理成功地闯入了博客园3000名!! 谢谢博客园的朋友们!非常感谢!!“老孙项目管理”今日排名2975。这样的成绩,老孙没有预料到,开心极了。比奥巴马当选总统&…

qt如和调用linux底层驱动_擅长复杂硬件体系设计,多核系统设计,以及基于RTOS或者Linux,QT等进行相关底层驱动。...

双向可控硅在使用时,其触发限流电阻的阻值和封装应该怎么选取?(1)首先我们在进行TRIAC其驱动电路设计的时候,我们一般不直接进行驱动,而是通过DIAC或者Photo-TRIAC即光学的双向可控硅配合来使用进行驱动电路的设计,为什…

学习:Web安装项目创建桌面快捷方式及重写安装类(转)

一、WEB安装项目部署1、新建: 新建项目-安装和部署项目-WEB安装项目 2、部署: (1)进入文件系统视图,"项目-右键-视图-文件系统";也可以直接点"解决方案资源管理器"上部的快捷图标(2)在"WEB应用程序文件夹"添加文件,例如aspx文件,ico文…

12c oracle 激活_Oracle 12C 安装教程

Oracle 12c,全称Oracle Database 12c,是Oracle 11g的升级版,新增了很多新的特性。本章节就为大家介绍Oracle 12c的下载和安装步骤。Oracle 12c下载打开Oracle的官方中文网站,选择相应的版本即可。注意:下载时&#xff…

运行试错合集

试错: 在服务器训练好的参数直接被pycharm映射给覆盖了! 记得把这里取消掉! 如果在py文件中修改了代码,手动上传! 就是上面的upload! 运行结果: 运行train的结果 评估阶段: 出错…

LeetCode 806. 写字符串需要的行数

1. 题目 我们要把给定的字符串 S 从左到右写到每一行上,每一行的最大宽度为100个单位,如果我们在写某个字母的时候会使这行超过了100 个单位,那么我们应该把这个字母写到下一行。 我们给定了一个数组 widths ,这个数组 widths[0…

【转载】揭开硬件中断请求IRQ所有秘密(图解)

转载自:http://news.csdn.net/n/20040517/45868.html IRQ(Interrupt Request)的作用就是在我们所用的电脑中,执行硬件中断请求的动作,用来停止其相关硬件的工作状态。比如我们要打印一份文件,在打印结束时就需要由系统对打印机提出…

(七)DKN:用于新闻推荐的深度知识感知网络

摘要: 背景: 新闻语言是高度浓缩的,充满了知识实体和常识。然而,现有的方法并没有意识到一些外在的知识,也不能充分发现新闻之间潜在的知识层面的联系。因此,推荐给用户的结果仅限于简单的模式&#xff0c…

平面方程(Plane Equation)

平面方程(Plane Equation) 原文链接:http://www.songho.ca/math/plane/plane.html翻译:罗朝辉 (http://www.cnblogs.com/kesalin/)本文遵循“署名-非商业用途-保持一致”创作公用协议平面方程平面上的一点以及垂直于该平面的法线唯一定义了 3D 空间的一个…

【DKN】(三)data_preprogress.py

内容 try: # 以绝对导入的方式导入cofig对象,并获取其{model_name}Config! config getattr(importlib.import_module(config), f"{model_name}Config") except AttributeError:print(f"{model_name} not included!")exit()这里…

mask属性是css3的吗_使用CSS3 mask(蒙版,遮罩)属性实现超酷按钮悬停动画

CSS语言:CSSSCSS确定import url("https://fonts.googleapis.com/css?familyLato:100,300,400");import url("https://fonts.googleapis.com/css?familyRoboto:100");* {margin: 0;padding: 0;box-sizing: border-box;}.header {text-align: c…

Java核心API需要掌握的程度

Java的核心API是非常庞大的,这给开发者来说带来了很大的方便,经常人有评论,java让程序员变傻。 但是一些内容我认为是必须掌握的,否则不可以熟练运用java,也不会使用就很难办了。 1、java.lang包下的80%以上的类的功能的灵活运用。…

主成分分析(Principal Component Analysis,PCA)

文章目录1. 总体主成分分析2. 样本主成分分析3. 主成分分析方法3.1 相关矩阵的特征值分解算法3.2 矩阵奇异值分解算法4. sklearn.decomposition.PCA主成分分析(Principal Component Analysis,PCA)是一种常用的无监督学习方法利用正交变换把由…

【DKN】(二)config.py

class BaseConfig():"""General configurations appiled to all models"""num_epochs 2 #迭代次数num_batches_show_loss 100 # Number of batchs to show lossnum_batches_validate 1000 # Number of batchs to check metrics on valid…

log4net异步写入日志_微信支付万亿日志在Hermes中的实践

导语 | 微信支付日志系统利用 Hermes 来实现日志的全文检索功能,自从接入以来,日志量持续增长。目前单日入库日志量已经突破万亿级,单集群日入库规模也已经突破了万亿,存储规模达 PB 级。本文将介绍微信支付日志系统在 Hermes 上的…

使用Axis2调用Web Service

本文作为使用Axis2创建Web Service的后篇,主要介绍如何使用Axis2调用Web Service。有关准备工作详情请参考前篇的内容。 在Eclipse的Packge Explorer中右键点击New,选择Other项,新建一个Axis2 Code Genrateor向导。点击Next,打开向…

LeetCode 旋转数组 系列

旋转数组系列,多数是排序数组进行了旋转,可以使用二分查找。做一个集合,如还有缺失的,可以留言指出,一起加油! LeetCode 33. 搜索旋转排序数组(二分查找) LeetCode 81. 搜索旋转排…

如何并行运行程序

参考了官方文档, torch.nn.parallel.DataParallel 以及https://zhuanlan.zhihu.com/p/102697821 在运行此DataParallel模块之前,并行化模块必须在device_ids [0]上具有其参数和缓冲区。在执行DataParallel之前,会首先把其模型的参数放在devi…

matlab打开笔记本摄像头_matlab窗口调用摄像头

更改”.m“文件:function varargout untitled1(varargin)% UNTITLED1 MATLAB code for untitled1.fig% UNTITLED1, by itself, creates a new UNTITLED1 or raises the existing% singleton*.%% H UNTITLED1 returns the handle to a new UNTITLED…