搞不懂有几个步骤
methods: {
getRecommend() {
if (this.curPage > this.totalPage) return;
getHomeRecommend(this.curPage).then(data => {
// 如果jsonp请求失败,在home.js中暴露的getHomeRecommend方法中,请求失败传递的data参数是undefined,所以要判断resolve(data)中传递的data参数是有数据还是undefined
if (data) {
// data是home.js中暴露的getHomeRecommend方法返回的promise对象中resolve(data)传递的数据,即是请求回来的数据
console.log(data);
this.curPage++;
// 根据请求的数据中的页数,更新总共页数
this.totalPage = data.totalPage;
// 克隆返回来的数据中itemList数组
this.recommends = this.recommends.concat(data.itemList);
}
});
}
}
};
为什么要克隆itemList数组而不是直接this.recommends=data.itemList?
this.curPage++;当前页只是加1了吗?为什么要+1?是每滑动一段距离发起jsonp请求,所以当前页加1,所以是一段时间就触发jsonp才页码+1的意思是吗?
正在回答 回答被采纳积分+1
同学你好,
1、同学你好,这里不是克隆哦,concat() 方法用于连接两个或多个数组
data.itemList是请求过来的数据。
this.recommends里面存放的是已经请求来的的数据。
this.recommends = this.recommends.concat(data.itemList);这句话也就是说把已经请求来的数据和当前次请求的数据连接起来,赋值给this.recommends,
结果也就是第一次请求来20条放到recommends这个数组里面(数组的长度是20),第二次又请求来20条数据,放到recommends数组里面(此时数组的长度就是40了),打印一下:
以此类推
2、同学理解的是正确的,只加了1,因为发起一次请求 ,就请求了一页的数据。
比如初始时 默认为1,去请求第一页,下次请求时,就去请求第二页的数据,所以页码就加1,
同学遇到不懂的地方,可以打印一下,就明白了。
如果帮助到了你,欢迎采纳~祝学习愉快~
- 参与学习 人
- 提交作业 239 份
- 解答问题 10739 个
本阶段带你深入前端开发的肌理,通过ES6基础知识和前端主流高级框架的学习,助你快速构建企业级移动webAPP应用,进入职场的终极battle
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星