浅谈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 相关文章推荐
学习ExtJS table布局
Oct 08 Javascript
JavaScript 学习笔记一些小技巧
Mar 28 Javascript
在myeclipse中如何加入jquery代码提示功能
Jun 03 Javascript
JavaScript字符串常用类使用方法汇总
Apr 14 Javascript
在线引用最新jquery文件的实现方法
Aug 26 Javascript
js仿拉勾网首页穿墙广告效果
Mar 08 Javascript
如何理解jQuery中的ajaxSubmit方法
Mar 13 Javascript
Vue的elementUI实现自定义主题方法
Feb 23 Javascript
vue 双向数据绑定的实现学习之监听器的实现方法
Nov 30 Javascript
Vue表单之v-model绑定下拉列表功能
May 14 Javascript
基于layui框架响应式布局的一些使用详解
Sep 16 Javascript
微信小程序实现聊天室
Aug 21 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基础知识:控制结构
2006/12/13 PHP
php float不四舍五入截取浮点型字符串方法总结
2013/10/28 PHP
php使用filter过滤器验证邮箱 ipv6地址 url验证
2013/12/25 PHP
利用PHP函数计算中英文字符串长度的方法
2014/11/11 PHP
thinkphp3.x连接mysql数据库的方法(具体操作步骤)
2016/05/19 PHP
详解php语言最牛掰的Laravel框架
2017/11/20 PHP
PHP Ajax跨域问题解决方案代码实例
2020/08/01 PHP
可输入的下拉框
2006/06/19 Javascript
文字幻灯片
2006/06/26 Javascript
javascript权威指南 学习笔记之变量作用域分享
2011/09/28 Javascript
关于extjs treepanel复选框选中父节点与子节点的问题
2013/04/02 Javascript
jquery子元素过滤选择器使用示例
2013/06/24 Javascript
基于jQuery的判断iPad、iPhone、Android是横屏还是竖屏的代码
2014/05/11 Javascript
浅谈JavaScript Math和Number对象
2015/01/26 Javascript
jQuery实现渐变弹出层和弹出菜单的方法
2015/02/20 Javascript
BootStrap iCheck插件全选与获取value值的解决方法
2016/08/24 Javascript
jQuery+CSS3实现仿花瓣网固定顶部位置带悬浮效果的导航菜单
2016/09/21 Javascript
jQuery时间验证和转换为标准格式的时间格式
2017/03/06 Javascript
nodejs入门教程五:连接数据库的方法分析
2017/04/24 NodeJs
详解Vue路由History mode模式中页面无法渲染的原因及解决
2017/09/28 Javascript
Nodejs模块的调用操作实例分析
2018/12/25 NodeJs
js判断浏览器的环境(pc端,移动端,还是微信浏览器)
2020/12/24 Javascript
jQuery实现推拉门效果
2020/10/19 jQuery
Vue+element-ui添加自定义右键菜单的方法示例
2020/12/08 Vue.js
Python用GET方法上传文件
2015/03/10 Python
python 简单照相机调用系统摄像头实现方法 pygame
2018/08/03 Python
解决python和pycharm安装gmpy2 出现ERROR的问题
2020/08/28 Python
如何利用Python写个坦克大战
2020/11/18 Python
HTML5 canvas基本绘图之绘制阴影效果
2016/06/27 HTML / CSS
制冷与电控专业应届生求职信
2013/11/11 职场文书
告诉你怎样写创业计划书
2014/01/27 职场文书
知识改变命运演讲稿
2014/05/21 职场文书
镇党委书记群众路线整改措施思想汇报
2014/10/13 职场文书
2014年妇委会工作总结
2014/12/10 职场文书
借钱欠条怎么写
2015/07/03 职场文书
Java 通过手写分布式雪花SnowFlake生成ID方法详解
2022/04/07 Java/Android