vue父组件异步获取数据传给子组件的方法


Posted in Javascript onJuly 26, 2018

但是现在问题是父组件的数据是异步获取的,而子组件一开始就会渲染,如果此时没有传入数据,而子组件又要用到数据中的length属性时就会报错:

vue父组件异步获取数据传给子组件的方法

怎么办呢?最简单的办法就是让子组件条件渲染,当有数据的时候才渲染,这样就不会抛出错误了。

vue父组件异步获取数据传给子组件的方法

但是这还不够完美,子组件一般不直接使用父组件传来的值,二是监听一下,然后有变化了的时候再赋值给data,渲染的时候用data里的数据,这样就能保证随时动态更新数据 

props: ['floorGoods'],
data() {
return{
flGoods: {}
}
},
watch: {
floorGoods(val) {
this.flGoods = val;
console.log(val);
}
}

在一个方法就是在父组件里用Promise方法异步执行数据的赋值:

new Promise((resolve,reject) => {
if (res.status === 200){
resolve(res);
}
}).then((res) => {
this.category = res.data.data.category;
this.adBar = res.data.data.advertesPicture.PICTURE_ADDRESS;
this.bannerSwipePics = res.data.data.slides;
this.recommendGoods = res.data.data.recommend;
// 也可异步获取再传给子组件 Promise
this.floorSeafood = res.data.data.floor1;
this.floorBeverage = res.data.data.floor2;
this.floorFruits = res.data.data.floor3;
console.log(this.floorFruits);
this._initScroll();
})
}).catch(err => {
console.log(err);
});

这样也是可以的,异步获取数据导致的报错的情况会在各个场景出现,比如根据数据渲染dom,而对dom有js操作的时候,会因为还没渲染出来而找不到响应的dom元素报错,这里可以用vue提供的$nextTick()函数,或者手动开个setTimeout定时器,延迟获取;使用better-scroll的时候因为dom没有渲染出来而无法获取滚动元素的高度,导致无法滚动,同样可以用vue提供的这个函数,等dom渲染完了后再初始化滚动。

总结

以上所述是小编给大家介绍的vue父组件异步获取数据传给子组件的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
漂亮的widgets,支持换肤和后期开发新皮肤(2007-4-27已更新1.7alpha)
Apr 27 Javascript
jquery text()要注意啦
Oct 30 Javascript
JQuery验证工具类搜集整理
Jan 16 Javascript
JSON+JavaScript处理JSON的简单例子
Mar 20 Javascript
使用jQuery清空file文件域的解决方案
Apr 12 Javascript
理解Javascript闭包
Nov 01 Javascript
JS实现的竖向折叠菜单代码
Oct 21 Javascript
node.js cookie-parser 中间件介绍
Jun 06 Javascript
原生态js,鼠标按下后,经过了那些单元格的简单实例
Aug 11 Javascript
JavaScript闭包与作用域链实例分析
Jan 21 Javascript
Vue移动端实现图片上传及超过1M压缩上传
Dec 23 Javascript
AJAX实现省市县三级联动效果
Oct 16 Javascript
JavaScript设计模式之构造器模式(生成器模式)定义与用法实例分析
Jul 26 #Javascript
JavaScript设计模式之单例模式原理与用法实例分析
Jul 26 #Javascript
JavaScript设计模式之原型模式分析【ES5与ES6】
Jul 26 #Javascript
如何把vuejs打包出来的文件整合到springboot里
Jul 26 #Javascript
JavaScript中变量提升与函数提升经典实例分析
Jul 26 #Javascript
基于Vue实现微信小程序的图文编辑器
Jul 25 #Javascript
详解ECMAScript typeof用法
Jul 25 #Javascript
You might like
PHP学习笔记之三 数据库基本操作
2011/01/17 PHP
PHP中ajax无刷新上传图片与图片下载功能
2017/02/21 PHP
Javascript miscellanea -display data real time, using window.status
2007/01/09 Javascript
Mootools 1.2教程 设置和获取样式表属性
2009/09/15 Javascript
JS window.opener返回父页面的应用
2009/10/24 Javascript
js 验证密码强弱的小例子
2013/03/21 Javascript
JS定时器实例详细分析
2013/10/11 Javascript
详解JavaScript语法对{}处理的坑爹之处
2014/06/05 Javascript
js实现正方形颜色从下往上升的效果
2014/08/04 Javascript
avalonjs制作响应式瀑布流特效
2015/05/06 Javascript
JS日期对象简单操作(获取当前年份、星期、时间)
2016/10/26 Javascript
原生JS实现跑马灯效果
2017/02/20 Javascript
JavaScript继承定义与用法实践分析
2018/05/28 Javascript
vue项目base64字符串转图片的实现代码
2018/07/13 Javascript
微信小程序使用二次贝塞尔曲线画波浪
2018/12/25 Javascript
利用JavaScript将Excel转换为JSON示例代码
2019/06/14 Javascript
在Vue mounted方法中使用data变量详解
2019/11/05 Javascript
[10:28]2018DOTA2国际邀请赛寻真——VGJ.S寻梦之路
2018/08/15 DOTA
Python基于checksum计算文件是否相同的方法
2015/07/09 Python
Python网站验证码识别
2016/01/25 Python
Python常见加密模块用法分析【MD5,sha,crypt模块】
2017/05/24 Python
python实现二分查找算法
2017/09/21 Python
python实现windows壁纸定期更换功能
2019/01/21 Python
python进程和线程用法知识点总结
2019/05/28 Python
Python爬虫之Selenium鼠标事件的实现
2020/12/04 Python
Lookfantastic德国官网:英国知名美妆购物网站
2017/06/11 全球购物
好莱坞百老汇御用王牌美妆:Koh Gen Do 江原道
2018/04/03 全球购物
北京捷通华声语音技术有限公司Java软件工程师笔试题
2012/04/10 面试题
临床医师专业个人自我评价
2014/01/08 职场文书
校园达人秀策划书
2014/01/12 职场文书
《黄河颂》教学反思
2014/02/07 职场文书
大学班级文化建设方案
2014/05/06 职场文书
乡镇三严三实学习心得体会
2014/10/13 职场文书
幼儿园法制宣传日活动总结
2014/11/01 职场文书
2016领导干部廉洁从政心得体会
2016/01/19 职场文书
简短的36句中秋节祝福信息语句
2019/09/09 职场文书