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 相关文章推荐
javascript 出生日期和身份证判断大全
Nov 13 Javascript
js indexOf()定义和用法
Oct 21 Javascript
JSON格式化输出
Nov 10 Javascript
js兼容火狐获取图片宽和高的方法
May 21 Javascript
JS实现鼠标滑过折叠与展开菜单效果代码
Sep 06 Javascript
使用jQuery判断Div是否在可视区域的方法 判断div是否可见
Feb 17 Javascript
jQuery代码实现实时获取时间
Jan 29 Javascript
ES6中Proxy代理用法实例浅析
Apr 06 Javascript
值得收藏的vuejs安装教程
Nov 21 Javascript
详解在vue-cli中使用graphql即vue-apollo的用法
Sep 08 Javascript
小程序Request的另类用法详解
Aug 09 Javascript
解决Nuxt使用axios跨域问题
Jul 06 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中usort在值相同时改变原始位置问题的解决方法
2011/11/27 PHP
PHP PDOStatement::fetchAll讲解
2019/01/31 PHP
从零开始学习jQuery (二) 万能的选择器
2010/10/01 Javascript
form表单中去掉默认的enter键提交并绑定js方法实现代码
2013/04/01 Javascript
nodejs中实现路由功能
2014/12/29 NodeJs
jQuery通过扩展实现抖动效果的方法
2015/03/11 Javascript
javascript中slice(),splice(),split(),substring(),substr()使用方法
2015/03/13 Javascript
JS动态日期时间的获取方法
2015/09/28 Javascript
WordPress中利用AJAX技术进行评论提交的实现示例
2016/01/12 Javascript
JS生成某个范围的随机数【四种情况详解】
2016/04/20 Javascript
jQuery页面元素动态添加后绑定事件丢失方法,非 live
2016/06/16 Javascript
Vue.js快速入门教程
2016/09/07 Javascript
详解Angular2中的编程对象Observable
2016/09/17 Javascript
EasyUI Combobox设置默认值 获取text的方法
2016/11/28 Javascript
jQuery插件HighCharts实现的2D对数饼图效果示例【附demo源码下载】
2017/03/09 Javascript
javascript实现数字配对游戏的实例讲解
2017/12/14 Javascript
jQuery 改变P标签文本值方法
2018/02/24 jQuery
vue 利用路由守卫判断是否登录的方法
2018/09/29 Javascript
JS+HTML5 canvas绘制验证码示例
2018/12/05 Javascript
JavaScript写个贪吃蛇小游戏(超详细)
2020/03/17 Javascript
Python使用ftplib实现简易FTP客户端的方法
2015/06/03 Python
Python判断Abundant Number的方法
2015/06/15 Python
django用户注册、登录、注销和用户扩展的示例
2018/03/19 Python
python使用pymongo与MongoDB基本交互操作示例
2020/04/09 Python
Python 分布式缓存之Reids数据类型操作详解
2020/06/24 Python
Python文件名匹配与文件复制的实现
2020/12/11 Python
python实现模拟器爬取抖音评论数据的示例代码
2021/01/06 Python
阿迪达斯丹麦官网:adidas丹麦
2016/10/01 全球购物
《逃家小兔》教学反思
2014/02/23 职场文书
施工安全标语
2014/06/07 职场文书
纪检干部个人对照检查材料
2014/09/23 职场文书
汉语拼音教学反思
2016/02/22 职场文书
如何书写读后感?(附范文)
2019/07/26 职场文书
诗词赏析-(浣溪沙)
2019/08/13 职场文书
Python requests库参数提交的注意事项总结
2021/03/29 Python
Go遍历struct,map,slice的实现
2021/06/13 Golang