
微信小程序开发之scroll-view上拉加载数据实现
下面就是布局中组件中bindscrolltolower绑定的函数、 that.getList()就是网络请求方法
发布日期:2021-05-10 03:42:37
浏览次数:22
分类:精选文章
本文共 2794 字,大约阅读时间需要 9 分钟。
微信小程序开发之scroll-view上拉加载数据实现
一、开发思路
1、使用小程序的scroll-view组件中提供了一个bindscrolltolower属性监听组件的滑动到了底部
.可以点击链接查看scroll-view组件拥有的属性
2、组件滑动到底部这个事件会频繁触发、所以为了防止多次触发我们定义一个状态用于管理加载的状态、如果上拉数据状态在加载中就不去做网络请求加载数据
3、上拉的时候对page进行加1然后获取网络请求
4、数据获取成功对获取的数据进行叠加
二、实现代码
1、布局
布局中我使用了scroll-view并且使用了bindscrolltolower这个属性绑定了我的lowe函数
{ { item.company}} { { item.time}} { { item.university}} { { item.place}} 来源 { { item.university}}/就业网 没有更多了~
2、js中的实现
stopLoadMoreTiem是我在data中定义的变量默认是false
定义page和stopLoadMoreTiem

//下拉加载 lower: function() { var that = this; if (that.stopLoadMoreTiem) { return; } this.setData({ page: this.data.page + 1 //上拉到底时将page+1后再调取列表接口 }); that.getList(); },
网络请求方法中网络请求成功改变stopLoadMoreTiem的状态网络请求成功没有数据的时候我给nodata赋值了 ,nodata布局中负责显示没有更多数据 布局的显示
/** * 请求网络获取列表数据 */ getList() { var that = this; that.stopLoadMoreTiem = true; // if (!that.stopLoadMoreTiem) { // } wx.showLoading({ title:'数据读取中...'}) wx.request({ url: app.globalData.apiHost + '/page?page=' + that.data.page + '&size=10', method: 'GET', data: { queryStartDate: that.data.queryStartDate, queryEndDate: that.data.queryStartDate, }, header: { 'Accept': 'application/json' }, success: function(res) { wx.hideLoading(); if (!res.data.content || res.data.content.length === 0) { that.setData({ noData: true, }) return; } if (that.stopLoadMoreTiem) { if (res.data.content && res.data.content.length > 0) { that.setData({ dataShow: that.data.dataShow.concat(res.data.content), total: res.data.totalElements, }) } } else { that.setData({ dataShow: res.data.content, total: res.data.totalElements, }) } that.stopLoadMoreTiem = false; } }) },
下面这块代码是关键代码 这块我写的如果是上拉加载并且获取的数据长度大于0我在这里使用concat关联将数组叠加。
dataShow: that.data.dataShow.concat(res.data.content)
if (that.stopLoadMoreTiem) { if (res.data.content && res.data.content.length > 0) { that.setData({ dataShow: that.data.dataShow.concat(res.data.content), total: res.data.totalElements, }) }} else { that.setData({ dataShow: res.data.content, total: res.data.totalElements, })}
发表评论
最新留言
表示我来过!
[***.240.166.169]2025年04月19日 23时44分20秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Mybatis配置解析
2021-05-09
http头部 Expect
2021-05-09
Hadoop(十六)之使用Combiner优化MapReduce
2021-05-09
C#实现outlook自动签名
2021-05-09
MySQL 5.5 My.cnf 模版
2021-05-09
使用mysqladmin ext了解MySQL运行状态【转】
2021-05-09
【程序员的脑洞故事】盘古,开辟天地
2021-05-09
《机器学习Python实现_10_06_集成学习_boosting_gbdt分类实现》
2021-05-09
对比讲解lambda表达式与传统接口函数实现方式
2021-05-09
使用java8API遍历过滤文件目录及子目录及隐藏文件
2021-05-09
精讲响应式WebClient第2篇-GET请求阻塞与非阻塞调用方法详解
2021-05-09
java9系列第二篇-资源自动关闭的语法增强
2021-05-09
CoreCLR源码探索(八) JIT的工作原理(详解篇)
2021-05-09
【数组】59. 螺旋矩阵 II
2021-05-09
【哈希表】1. 两数之和
2021-05-09
【栈和队列】232. 用栈实现队列
2021-05-09
linux之压缩和解压
2021-05-09
斩荆披棘,我们走的关于程序的路
2021-05-09
分享在winform下实现模块化插件编程-优化版
2021-05-09