浅谈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加密解密7种方法总结分析
Oct 07 Javascript
从零开始学习jQuery (十一) 实战表单验证与自动完成提示插件
Feb 23 Javascript
JS实现悬浮移动窗口(悬浮广告)的特效
Mar 12 Javascript
javaScript(JS)替换节点实现思路介绍
Apr 17 Javascript
javascript中的nextSibling使用陷(da)阱(keng)
May 05 Javascript
JavaScript 里的类数组对象
Apr 08 Javascript
JavaScript操作表单实例讲解(上)
Jun 20 Javascript
使用Vue如何写一个双向数据绑定(面试常见)
Apr 20 Javascript
vue基础之使用get、post、jsonp实现交互功能示例
Mar 12 Javascript
微信小程序图片左右摆动效果详解
Jul 13 Javascript
微信小程序webview 脚手架使用详解
Jul 22 Javascript
解决layer弹出层的内容页点击按钮跳转到新的页面问题
Sep 14 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中mysql与mysqli的区别分析
2013/06/10 PHP
PHP中key和current,next的联合运用实例分析
2016/03/29 PHP
php curl中gzip的压缩性能测试实例分析
2016/11/08 PHP
thinkPHP批量删除的实现方法分析
2016/11/09 PHP
PHP新特性详解之命名空间、性状与生成器
2017/07/18 PHP
Ajax一统天下之Dojo整合篇
2007/03/24 Javascript
从sohu弄下来的flash中展示图片的代码
2007/04/27 Javascript
javascript 尚未实现错误解决办法
2008/11/27 Javascript
jQuery中与toggleClass等价的程序段 以及未来学习的方向
2010/03/18 Javascript
javascript中的prototype属性实例分析说明
2010/08/09 Javascript
jQuery总体架构的理解分析
2011/03/07 Javascript
关于js获取radio和select的属性并控制的代码
2011/05/12 Javascript
JavaScript/Js脚本处理html元素的自定义属性解析(亲测兼容Firefox与IE)
2013/11/25 Javascript
jquery移除、绑定、触发元素事件使用示例详解
2014/04/10 Javascript
Node.js事件驱动
2015/06/18 Javascript
Bootstrap入门书籍之(四)菜单、按钮及导航
2016/02/17 Javascript
浅谈Javascript事件对象
2017/02/05 Javascript
jQuery插件FusionCharts实现的3D柱状图效果实例【附demo源码下载】
2017/03/03 Javascript
Vue.js 中的 $watch使用方法
2017/05/25 Javascript
使用 jQuery 实现表单验证功能
2017/07/05 jQuery
BootStrap模态框和select2合用时input无法获取焦点的解决方法
2017/09/01 Javascript
微信小程序App生命周期详解
2018/01/31 Javascript
vue draggable resizable 实现可拖拽缩放的组件功能
2019/07/15 Javascript
react中hook介绍以及使用教程
2020/12/11 Javascript
Python检测一个对象是否为字符串类的方法
2015/05/21 Python
Python实现打印螺旋矩阵功能的方法
2017/11/21 Python
基于django ManyToMany 使用的注意事项详解
2019/08/09 Python
python tkinter组件使用详解
2019/09/16 Python
Pycharm学生免费专业版安装教程的方法步骤
2020/09/24 Python
MYSQL基础面试题
2012/05/13 面试题
医学检验专业大学生求职信
2013/11/18 职场文书
银行柜员应聘推荐信范文
2013/11/24 职场文书
办加油卡单位介绍信
2014/01/09 职场文书
党的群众路线教育实践活动个人对照检查材料
2014/09/22 职场文书
导游词之阳朔遇龙河
2019/12/16 职场文书
docker compose 部署 golang 的 Athens 私有代理问题
2022/04/28 Servers