vue父组件向子组件动态传值的两种方法


Posted in Javascript onNovember 11, 2017

在一些项目需求中需要父组件向子组件动态传值,比如我这里的需求是,父组件动态通过axios获取返回的图片url数组然后传给子组件,上传图片的子组件拿到该数组后进行遍历并展示图片

方法有两种,

方法一:

props传值,这里注意一个问题,传过来的值需要用watch监听并赋值,否则这里获取到的是空数组

  父组件:

<uploadImg :width="200" :height="200" name="productImage" size="750px*750px" ref="productImage" :src-list="this.productImage"></uploadImg>
this.productImage=res.data.cover;

这里把通过后台返回的数组赋值给

this.productImage,然后把该数组传给子组件定义的props属性src-list

子组件:

watch:{
     srcList(curVal,oldVal){
      if(curVal){
       ;
       this.uploadImg=curVal;
       }
     },
}

然后子组件成功获取到该数组

方法二:

通过ref属性,父组件调用子组件的方法,把要传的数组作为参数传给子组件,子组件获取该参数,并使用

父组件:

this.$refs.productImage.getSrcList(res.data.cover);

子组件:

getSrcList(val){
  this.uploadImg=val;
}

PS:下面看下vuejs动态组件给子组件传递数据

通过子组件定义时候的props可以支持父组件给子组件传递数据,这些定义的props在子组件的标签中使用绑定属性即可,但是如果使用的是<component>动态组件,这个时候就没有显式的子组件标签,要给子组件传递数据需要在<component> 中进行绑定

<div class="app" id="deviceready">
    <component :is="currentView" :user_name.sync="user_name" :DOB.sync="DOB"></component>
  </div>

组件的作用于是独立的

组件的作用于是独立的,如果要从跟组件获取数据,那么需要一层层的传递才行,也就是说子组件只能从直接父组件获取数据,如果是根组件的数据,那么父组件就要继续暴露pops从而绑定来自根组件的数据。

Javascript 相关文章推荐
关于COOKIE个数与大小的问题
Jan 17 Javascript
jquery加载页面的方法(页面加载完成就执行)
Jun 21 Javascript
JS获取html对象的几种方式介绍
Dec 05 Javascript
jQuery AJAX timeout 超时问题详解
Jun 21 Javascript
jQuery简单入门示例之用户校验demo示例
Jul 09 Javascript
javascript中sort排序实例详解
Jul 24 Javascript
使用HTML5+Boostrap打造简单的音乐播放器
Aug 05 Javascript
移动端点击图片放大特效PhotoSwipe.js插件实现
Aug 25 Javascript
jQuery实用密码强度检测
Mar 02 Javascript
基于jstree使用AJAX请求获取数据形成树
Aug 29 Javascript
JS实现基于拖拽改变物体大小的方法
Jan 23 Javascript
element-ui upload组件多文件上传的示例代码
Oct 17 Javascript
详解Vue如何支持JSX语法
Nov 10 #Javascript
微信小程序异步处理详解
Nov 10 #Javascript
微信小程序实现选项卡功能
Jun 19 #Javascript
微信小程序实现多宫格抽奖活动
Apr 15 #Javascript
十分钟带你快速了解React16新特性
Nov 10 #Javascript
JS实现移动端整屏滑动的实例代码
Nov 10 #Javascript
Three.js加载外部模型的教程详解
Nov 10 #Javascript
You might like
十天学会php之第四天
2006/10/09 PHP
pw的一个放后门的方法分析
2007/10/08 PHP
php session_start()出错原因分析及解决方法
2013/10/28 PHP
smarty半小时快速上手入门教程
2014/10/27 PHP
让IE8支持DOM 2(不用框架!)
2009/12/31 Javascript
鼠标右击事件代码(asp.net后台)
2011/01/27 Javascript
jQuery.fn和jQuery.prototype区别介绍
2013/10/05 Javascript
js 日期比较相关天数代码
2014/04/02 Javascript
js自定义鼠标右键的实现原理及源码
2014/06/23 Javascript
jQuery中:header选择器用法实例
2014/12/29 Javascript
javascript中Object使用详解
2015/01/26 Javascript
JS实现横向拉伸动感伸缩菜单效果代码
2015/09/04 Javascript
JavaScript基础知识点归纳(推荐)
2016/07/09 Javascript
mvc中form表单提交的三种方式(推荐)
2016/08/10 Javascript
jQuery插件FusionCharts绘制的2D双面积图效果示例【附demo源码】
2017/04/11 jQuery
js上传图片预览的实现方法
2017/05/09 Javascript
Vue使用vux-ui自定义表单验证遇到的问题及解决方法
2018/05/10 Javascript
详解JavaScript事件循环机制
2018/09/07 Javascript
JS中判断字符串存在和非空的方法
2018/09/12 Javascript
解决layui弹框失效的问题
2019/09/09 Javascript
JavaScript代理模式原理与用法实例详解
2020/03/10 Javascript
vue实现表单未编辑或未保存离开弹窗提示功能
2020/04/08 Javascript
Django中cookie的基本使用方法示例
2018/02/03 Python
Python递归调用实现数字累加的代码
2020/02/25 Python
Python Opencv中用compareHist函数进行直方图比较对比图片
2020/04/07 Python
详解css3中dispaly的Grid布局与Flex布局
2020/09/11 HTML / CSS
中学生在校期间的自我评价分享
2013/11/13 职场文书
供货协议书
2014/04/22 职场文书
中班上学期幼儿评语
2014/04/30 职场文书
人力资源管理专业毕业生自荐书
2014/05/25 职场文书
工作粗心大意检讨书
2014/09/18 职场文书
高校教师个人工作总结2014
2014/12/17 职场文书
超市督导岗位职责
2015/04/10 职场文书
SSM VUE Axios详解
2021/10/05 Vue.js
Mysql存储过程、触发器、事件调度器使用入门指南
2022/01/22 MySQL
vue实现Toast组件轻提示
2022/04/10 Vue.js