浅谈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 相关文章推荐
7个Javascript地图脚本整理
Oct 20 Javascript
javaScript 关闭浏览器 (不弹出提示框)
Jan 31 Javascript
JavaScript实现的石头剪刀布游戏源码分享
Aug 22 Javascript
JS实现仿京东淘宝竖排二级导航
Dec 08 Javascript
jQuery中height()方法用法实例
Dec 24 Javascript
jQuery中:checked选择器用法实例
Jan 04 Javascript
Javascript中Array用法实例分析
Jun 13 Javascript
bootstrap输入框组件使用方法详解
Jan 19 Javascript
vue.js的双向数据绑定Object.defineProperty方法的神奇之处
Jan 18 Javascript
Vue分页插件的前后端配置与使用
Oct 09 Javascript
vuex入门最详细整理
Mar 04 Javascript
Vue+Java+Base64实现条码解析的示例
Sep 23 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如何编写易读的代码
2007/07/10 PHP
PHP制作百度词典查词采集器
2015/01/29 PHP
php 运算符与表达式详细介绍
2016/11/30 PHP
js取滚动条的尺寸的函数代码
2011/11/30 Javascript
一个页面元素appendchild追加到另一个页面元素的问题
2013/01/27 Javascript
自己写了一个展开和收起的多更能型的js效果
2013/03/05 Javascript
Javascript浅谈之this
2013/12/17 Javascript
jQuery实现可编辑的表格实例讲解(2)
2015/09/17 Javascript
JavaScript学习总结之JS、AJAX应用
2016/01/29 Javascript
js仿淘宝和百度文库的评分功能
2016/05/15 Javascript
Jquery揭秘系列:ajax原生js实现详解(推荐)
2016/06/08 Javascript
JavaScript中获取时间的函数集
2016/08/16 Javascript
详解PHP中pathinfo()函数导致的安全问题
2017/01/05 Javascript
node.js平台下利用cookie实现记住密码登陆(Express+Ejs+Mysql)
2017/04/26 Javascript
Angular.js中下拉框实现渲染html的方法
2017/06/18 Javascript
纯JS实现只能输入数字的简单代码
2017/06/21 Javascript
微信小程序MUI侧滑导航菜单示例(Popup弹出式,左侧滑动,右侧不动)
2019/01/23 Javascript
swiper Scrollbar滚动条组件详解
2019/09/08 Javascript
加速vue组件渲染之性能优化
2020/04/09 Javascript
JQuery获得内容和属性方法解析
2020/05/30 jQuery
用Python代码来解图片迷宫的方法整理
2015/04/02 Python
在Python中处理字符串之ljust()方法的使用简介
2015/05/19 Python
python实现数独算法实例
2015/06/09 Python
python虚拟环境virualenv的安装与使用
2016/12/18 Python
Python中查看文件名和文件路径
2017/03/31 Python
python列表的增删改查实例代码
2018/01/30 Python
python笔记之mean()函数实现求取均值的功能代码
2019/07/05 Python
使用matlab或python将txt文件转为excel表格
2019/11/01 Python
python 基于PYMYSQL使用MYSQL数据库
2020/12/24 Python
美国领先的户外服装与装备用品店:Moosejaw
2016/08/25 全球购物
计算机专业毕业生的自我评价
2013/11/18 职场文书
三好学生先进事迹材料
2014/08/28 职场文书
个人总结与自我评价
2014/09/18 职场文书
房屋分割离婚协议书范本
2014/12/01 职场文书
和谐家庭事迹材料
2014/12/20 职场文书
2015年科学教研组工作总结
2015/07/22 职场文书