浅谈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 相关文章推荐
让网页根据不同IE版本显示不同的内容
Feb 08 Javascript
jquery easyui 对于开始时间小于结束时间的判断示例
Mar 22 Javascript
js调用后台、后台调用前台等方法总结
Apr 17 Javascript
基于jQuery实现文本框缩放以及上下移动功能
Nov 24 Javascript
javascript+canvas制作九宫格小程序
Dec 28 Javascript
js实现从中间开始往上下展开网页窗口的方法
Mar 02 Javascript
Javascript定义类(class)的三种方法详解
Mar 13 Javascript
利用transition实现文字上下抖动的效果
Jan 21 Javascript
解决Jstree 选中父节点时被禁用的子节点也会选中的问题
Dec 27 Javascript
Vue不能检测到Object/Array更新的情况的解决
Jun 26 Javascript
JS实现给数组对象排序的方法分析
Jun 24 Javascript
vant实现购物车功能
Jun 29 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通过COM使用ADODB的简单例子
2006/12/31 PHP
php做下载文件的实现代码及文件名中乱码解决方法
2011/02/03 PHP
PHP使用正则表达式获取微博中的话题和对象名
2015/07/18 PHP
PHP使用标准库spl实现的观察者模式示例
2018/08/04 PHP
PHP 出现 http500 错误的解决方法
2021/03/09 PHP
javascript学习随笔(使用window和frame)的技巧
2007/03/08 Javascript
从sohu弄下来的flash中展示图片的代码
2007/04/27 Javascript
jQuery EasyUI NumberBox(数字框)的用法
2010/07/08 Javascript
js获取height和width的方法说明
2013/01/06 Javascript
Jquery实现显示和隐藏的4种简单方式
2013/08/28 Javascript
jquery设置元素的readonly和disabled的写法
2013/09/22 Javascript
showModelDialog弹出文件下载窗口的使用示例
2013/11/19 Javascript
基于jquery实现在线选座订座之影院篇
2015/08/24 Javascript
jQuery实现可高亮显示的二级CSS菜单效果
2015/09/01 Javascript
详解javascript实现瀑布流绝对式布局
2016/01/29 Javascript
如何高效率去掉js数组中的重复项
2016/04/12 Javascript
所见即所得的富文本编辑器bootstrap-wysiwyg使用方法详解
2016/05/27 Javascript
jQuery插件之validation插件
2017/03/29 jQuery
JS SetInterval 代码实现页面轮询
2017/08/11 Javascript
详解js动态获取浏览器或页面等容器的宽高
2019/03/13 Javascript
jQuery实现input[type=file]多图预览上传删除等功能
2019/08/02 jQuery
VUE前后端学习tab写法实例
2019/08/06 Javascript
vue+springboot图片上传和显示的示例代码
2020/02/14 Javascript
浅谈TypeScript的类型保护机制
2020/02/23 Javascript
jQuery中event.target和this的区别详解
2020/08/13 jQuery
Python语言描述连续子数组的最大和
2018/01/04 Python
深入浅析Python 函数注解与匿名函数
2020/02/24 Python
Html5 webRTC简单实现视频调用的示例代码
2020/09/23 HTML / CSS
Vans荷兰官方网站:美国南加州的原创极限运动潮牌
2018/01/23 全球购物
世界上最好的儿童品牌:AlexandAlexa
2018/01/27 全球购物
乐观大学生的自我评价
2014/01/10 职场文书
经验丰富大学生村干部自我鉴定
2014/01/22 职场文书
护士毕业生自荐信
2014/02/07 职场文书
中学生综合素质自我评价
2015/03/06 职场文书
分析JVM源码之Thread.interrupt系统级别线程打断
2021/06/29 Java/Android
详解Anyscript开发指南绕过typescript类型检查
2022/09/23 Javascript