浅谈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 相关文章推荐
滚动经典最新话题[prototype框架]下编写
Oct 03 Javascript
javascript的函数
Jan 31 Javascript
JS代码判断IE6,IE7,IE8,IE9的函数代码
Aug 02 Javascript
json字符串之间的相互转换示例代码
Aug 21 Javascript
JS中innerHTML和pasteHTML的区别实例分析
Jun 22 Javascript
javascript数组去重方法分析
Dec 15 Javascript
原生js实现下拉框功能(支持键盘事件)
Jan 13 Javascript
js浏览器滚动条卷去的高度scrolltop(实例讲解)
Jul 07 Javascript
详解使用nvm安装node.js
Jul 18 Javascript
vuex中使用对象展开运算符的示例
Sep 25 Javascript
详解在不使用ssr的情况下解决Vue单页面SEO问题
Nov 08 Javascript
使用RxJS更优雅地进行定时请求详析
Jun 02 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 SEO优化之URL优化方法
2011/04/21 PHP
ThinkPHP实现非标准名称数据表快速创建模型的方法
2014/11/29 PHP
php实现SAE上使用storage上传与下载文件的方法
2015/06/29 PHP
PHP+jQuery翻板抽奖功能实现
2015/10/19 PHP
PHP模板引擎Smarty中变量的使用方法示例
2016/04/11 PHP
PHP 文件上传后端处理实用技巧方法
2017/01/06 PHP
greybox——不开新窗口看新的网页
2007/02/20 Javascript
js escape,unescape解决中文乱码问题的方法
2010/05/26 Javascript
javascript中类的定义及其方式(《javascript高级程序设计》学习笔记)
2011/07/04 Javascript
js中top/parent/frame概述及案例应用
2013/02/06 Javascript
Javasipt:操作radio标签详解
2013/12/30 Javascript
jQuery form插件的使用之处理server返回的JSON, XML,HTML数据
2016/01/26 Javascript
巧用Javascript的逻辑运算符
2016/12/02 Javascript
JS回调函数基本定义与用法实例分析
2017/05/24 Javascript
bootstrap timepicker在angular中取值并转化为时间戳
2017/06/13 Javascript
JS实现延迟隐藏功能的方法(类似QQ头像鼠标放上展示信息)
2017/12/28 Javascript
extract-text-webpack-plugin用法详解
2019/02/14 Javascript
浅谈一种让小程序支持JSX语法的新思路
2019/06/16 Javascript
[03:38]2014DOTA2西雅图国际邀请赛 VG战队巡礼
2014/07/07 DOTA
python socket多线程通讯实例分析(聊天室)
2016/04/06 Python
Python只用40行代码编写的计算器实例
2017/05/10 Python
详解Django-auth-ldap 配置方法
2018/12/10 Python
Python Pillow Image Invert
2019/01/22 Python
韩国11街:11STREET
2018/03/27 全球购物
J2EE的优越性主要表现在哪些方面
2016/03/28 面试题
文职个人求职信范文
2013/09/23 职场文书
机关门卫岗位职责
2013/12/30 职场文书
酒店优秀员工事迹材料
2014/06/02 职场文书
篮球社团活动总结
2014/06/27 职场文书
校园游戏活动新闻稿
2014/10/15 职场文书
道路交通事故人身损害赔偿协议书
2014/11/19 职场文书
社区服务理念口号
2015/12/25 职场文书
Python读取文件夹下的所有文件实例代码
2021/04/02 Python
JavaScript异步操作中串行和并行
2021/11/20 Javascript
Python内置包对JSON文件数据进行编码和解码
2022/04/12 Python
html解决浏览器记住密码输入框的问题
2023/05/07 HTML / CSS