浅谈vue父子组件怎么传值


Posted in Javascript onJuly 21, 2018

背景:最近在做vue的项目,因为页面的逻辑比较复杂,代码量较多,所以就想抽离出一些组件放到component里面。问题就随之来了。

因为vue不提倡在子组件中修改父组件的值,所以如果要这样操作的话就要麻烦一步,而我正好需要这样的操作,于是就查阅了资料

上父组件的代码,引用了exp-group子组件

<exp-group :grpVisible="grpVisible" :grpData="grpData" @updateData="acceptData"></exp-group>

grpVisible 和 grpData 是传给子组件的属性,一个是普通类型,一个是对象

grpVisible: false,
grpData: {app: this.$route.query.app, exp: this.$route.query.exp},

接下来我要在子组件中改变这两个属性的值传给父组件,先要在子组件中定义一下

props: {
 grpVisible: {
  type: Boolean,
  default: false
 },
 grpData: {
  type: Object
 }
},

首先普通类型的 grpVisible 属性如果要修改,需要定义一个变量将 grpVisible 值复制给这个变量,然后再修改这个变量,传递给父组件,具体见代码

let demo1 = this.grpVisible
demo1 = true
this.$emit('updateData', demo1) //子组件

父组件通过acceptData的参数value接收这个值

acceptData (value) {
 console.log(value)
}, //父组件

如果是对象的话,就需要用Object.assign拷贝一份新的赋值给一个变量,然后修改这个变量,传递给父组件,代码如下:

let demo1 = Object.assign({}, this.grpData)
demo1.app = 'binge'
this.$emit('updateData', demo1)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
最好用的省市二级联动 原生js实现你值得拥有
Sep 22 Javascript
jquery.cookie() 方法的使用(读取、写入、删除)
Dec 05 Javascript
基于Jquery实现表单验证
Jul 20 Javascript
Bootstrap学习笔记之js组件(4)
Jun 12 Javascript
js数组的五种迭代方法及两种归并方法(推荐)
Jun 14 Javascript
JS瀑布流实现方法实例分析
Dec 19 Javascript
jquery实现焦点轮播效果
Feb 23 Javascript
jQuery中的deferred使用方法
Mar 27 jQuery
jQuery实现base64前台加密解密功能详解
Aug 29 jQuery
jQuery实现简单的下拉菜单导航功能示例
Dec 07 jQuery
vue如何通过id从列表页跳转到对应的详情页
May 01 Javascript
原生js实现移动小球(碰撞检测)
Dec 17 Javascript
通过webpack引入第三方库的方法
Jul 20 #Javascript
详解Koa中更方便简单发送响应的方式
Jul 20 #Javascript
详解angular分页插件tm.pagination二次触发问题解决方案
Jul 20 #Javascript
小程序视频列表中视频的播放与停止的示例代码
Jul 20 #Javascript
微信小程序实现topBar底部选择栏效果
Jul 20 #Javascript
JS+H5 Canvas实现时钟效果
Jul 20 #Javascript
详解处理bootstrap4不支持远程静态框问题
Jul 20 #Javascript
You might like
PHP中读写文件实现代码
2011/10/20 PHP
shell脚本作为保证PHP脚本不挂掉的守护进程实例分享
2013/07/15 PHP
Codeigniter发送邮件的方法
2015/03/19 PHP
JS获取scrollHeight问题想到的标准问题
2007/05/27 Javascript
用jQuery简化JavaScript开发分析
2009/02/19 Javascript
几个javascript操作word的参考代码
2009/10/26 Javascript
jQuery中与toggleClass等价的程序段 以及未来学习的方向
2010/03/18 Javascript
在jquery中combobox多选的不兼容问题总结
2013/12/24 Javascript
javascript读取Xml文件做一个二级联动菜单示例
2014/03/17 Javascript
JQuery.get提交页面不跳转的解决方法
2015/01/13 Javascript
js验证框架实现代码分享
2016/05/18 Javascript
Javascript Function.prototype.bind详细分析
2016/12/29 Javascript
js实现网页的两个input标签内的数值加减(示例代码)
2017/08/15 Javascript
通过fastclick源码分析彻底解决tap“点透”
2017/12/24 Javascript
vue+swiper实现侧滑菜单效果
2017/12/28 Javascript
js实现微信/QQ直接跳转到支付宝APP打开口令领红包功能
2018/01/09 Javascript
js中document.write和document.writeln的区别
2018/03/11 Javascript
JavaScript实现的简单加密解密操作示例
2018/06/01 Javascript
Python解析json之ValueError: Expecting property name enclosed in double quotes: line 1 column 2(char 1)
2017/07/06 Python
在python中使用正则表达式查找可嵌套字符串组
2017/10/24 Python
全面分析Python的优点和缺点
2018/02/07 Python
解决Python requests库编码 socks5代理的问题
2018/05/07 Python
解决tensorflow测试模型时NotFoundError错误的问题
2018/07/27 Python
Python3+OpenCV2实现图像的几何变换(平移、镜像、缩放、旋转、仿射)
2019/05/13 Python
python3实现绘制二维点图
2019/12/04 Python
Python Charles抓包配置实现流程图解
2020/09/29 Python
python time()的实例用法
2020/11/03 Python
Web前端页面跳转并取到值
2017/04/24 HTML / CSS
学生发电厂实习自我鉴定
2013/09/22 职场文书
婚礼证婚人证婚词
2014/01/13 职场文书
阿德的梦教学反思
2014/02/06 职场文书
英语教学随笔感言
2014/02/20 职场文书
工作岗位说明书模板
2014/05/09 职场文书
社区反邪教工作方案
2014/06/16 职场文书
Laravel中获取IP的真实地理位置
2021/04/01 PHP
Python 实现绘制子图及子图刻度的变换等问题
2021/05/31 Python