浅谈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 相关文章推荐
JavaScript 中的事件教程
Apr 05 Javascript
使用jquery获取网页中图片高度的两种方法
Sep 26 Javascript
深入理解javascript原型链和继承
Sep 23 Javascript
jQuery实现鼠标划过展示大图的方法
Mar 09 Javascript
JS实现按比例缩放图片的方法(附C#版代码)
Dec 08 Javascript
深入解析JavaScript框架Backbone.js中的事件机制
Feb 14 Javascript
AngularJS开发教程之控制器之间的通信方法分析
Dec 25 Javascript
基于node.js依赖express解析post请求四种数据格式
Feb 13 Javascript
vue省市区三联动下拉选择组件的实现
Apr 28 Javascript
浅谈Node.js爬虫之网页请求模块
Jan 11 Javascript
使用layui实现的左侧菜单栏以及动态操作tab项方法
Sep 10 Javascript
vue项目实现减少app.js和vender.js的体积操作
Nov 12 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 simple_html_dom.php+正则 采集文章代码
2009/12/24 PHP
浅析PHP中的字符串编码转换(自动识别原编码)
2013/07/02 PHP
Yii中render和renderPartial的区别
2014/09/03 PHP
php获取当前月与上个月月初及月末时间戳的方法
2016/12/05 PHP
php常用正则函数实例小结
2016/12/29 PHP
laravel使用Faker数据填充的实现方法
2019/04/12 PHP
javascript-简单的日历实现及Date对象语法介绍(附图)
2013/05/30 Javascript
js实现格式化金额,字符,时间的方法
2015/02/26 Javascript
原生js实现图片轮播特效
2015/12/18 Javascript
JavaScript实现跑马灯抽奖活动实例代码解析与优化(一)
2016/02/16 Javascript
JavaScript实现简单Tip提示框效果
2016/04/20 Javascript
正则表达式,替换所有HTML标签的简单实例
2016/11/28 Javascript
vue.js内部自定义指令与全局自定义指令的实现详解(利用directive)
2017/07/11 Javascript
angularjs实现时间轴效果的示例代码
2017/11/29 Javascript
vue.js中proxyTable 转发请求的实现方法
2018/09/20 Javascript
在vue中获取token,并将token写进header的方法
2018/09/26 Javascript
基于vue实现web端超大数据量表格的卡顿解决
2019/04/02 Javascript
详解如何理解vue的key属性
2019/04/14 Javascript
JS基础之逻辑结构与循环操作示例
2020/01/19 Javascript
vue 实现锚点功能操作
2020/08/10 Javascript
vue或react项目生产环境去掉console.log的操作
2020/09/02 Javascript
在vue中使用image-webpack-loader实例
2020/11/12 Javascript
Python实现string字符串连接的方法总结【8种方式】
2018/07/06 Python
Python+Tensorflow+CNN实现车牌识别的示例代码
2019/10/11 Python
TensorFLow 不同大小图片的TFrecords存取实例
2020/01/20 Python
python matplotlib模块基本图形绘制方法小结【直线,曲线,直方图,饼图等】
2020/04/26 Python
keras 如何保存最佳的训练模型
2020/05/25 Python
浅谈python量化 双均线策略(金叉死叉)
2020/06/03 Python
Python中全局变量和局部变量的理解与区别
2021/02/07 Python
小学教师的个人自我鉴定
2013/10/24 职场文书
大学生自荐书范文
2013/12/10 职场文书
ktv总经理岗位职责
2014/02/17 职场文书
世界地球日活动总结
2015/02/09 职场文书
开票员岗位职责
2015/02/12 职场文书
go原生库的中bytes.Buffer用法
2021/04/25 Golang
我家女友可不止可爱呢 公开OP主题曲无字幕动画MV
2022/04/11 日漫