位置: IT常识 - 正文

微信小程序开发使用onreachBottom实现页面触底加载及分页(微信小程序开发者工具)

编辑:rootadmin
微信小程序开发使用onreachBottom实现页面触底加载及分页

目录

一 简要介绍一下onreachBottom事件

 二  实例展示

 三 遇到的一些问题


一 简要介绍一下onreachBottom事件

推荐整理分享微信小程序开发使用onreachBottom实现页面触底加载及分页(微信小程序开发者工具),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:微信小程序开发平台,微信小程序开发公司十大排名,微信小程序开发者工具,微信小程序开发公司十大排名,微信小程序开发费用一览表,微信小程序开发公司,微信小程序开发公司,微信小程序开发平台,内容如对您有帮助,希望把文章链接给更多的朋友!

        onreachBottom和onLoad以及onShow一样,都属于小程序的生命周期事件,作用就是在页面下拉到底部时触发这个事件,一般适用于数据比较多的情况下,实现懒加载并分页展示数据。

        截图中展示了小程序对onreachBottom事件的具体解释和参数。

 二  实例展示

此次展示的实例是在小程序首页加载二手车车源信息的下拉分页加载数据的效果。

首先需要在data里面初始化分页的页数和获取的数据数组。

写好触底之后加载新数据并保留老数据的方法。我把加载第一页数据和触底加载新数据写在了一个方法里面,方法里面加入了一个布尔型的reachBottom参数,在onLoad事件里参数为false,只加载第一页;在onreachBottom事件里参数为true,要加载新的数据.向后端请求的方法为util.request,详情可以看我上一个博客,贴个链接.这里的参数比较多,贴图

微信小程序开发使用onreachBottom实现页面触底加载及分页(微信小程序开发者工具)

https://blog.csdn.net/weixin_53387347/article/details/125742037?spm=1001.2014.3001.5502将从后端请求的数据保存在supplyList中,并且通过setData方法写入data中的supplyList中,将总页数也保存在totalPages中,最后每获取一整页的数据之后将页数加一,为下页调用数据做准备.方法的整体代码如下.getSupplyList(reachBottom) {//参数表示是否为触底下拉加载数据 wx.showLoading({ title: '加载中...', }); let that = this;//在回调甘薯里,this有时候不能直接用,防止出bug所初始化一个that util.request(api.SupplyList, {//发送请求 type: that.data.type, page: that.data.page, limit: that.data.limit, searchValue: that.data.searchValue//请求的四个参数 }).then(function (res) { console.log(that.data.page); if (res.errno === 0) {//为0请求成功 let supplyList = res.data.list.map(item => { item.dueTime = util.formatTime2(new Date(item.dueTime), "Y/M/D");//设置日期格式 item.herbListImage && (item.herbListImage01 = item.herbListImage.split(',')[0])//设置获取的图片列表 item.companyLogo = item.companyLogo || item.avatar; item.companyName = item.companyName || item.nickname; return item;//将这一条数据返回supplyList并保存 }); //触底加载新数据并保留老数据 if (reachBottom) { supplyList = [...that.data.supplyList, ...supplyList]//将新数据加入老数据中 } that.setData({//将获取的值赋值给data中的数组和总页数 supplyList: supplyList, totalPages: res.data.pages }); that.data.page++//所有操作完成后页数加一 wx.hideLoading(); } }).finally(() => { wx.hideLoading(); }); },写好getSupplyList方法之后,可以在onReachBottom触底加载事件里面进行调用,调用的时候要判断当前页是否小于总页数,小于的话进行调用,并且在每次调用后将当前页数加一,代码如下. onReachBottom() {//触底加载事件 if (this.data.totalPages > this.data.page) {//判断当前也是否小于总页数 this.setData({ page: this.data.page + 1//当前页加一 }); } else { return false; } this.getSupplyList(true);//调用方法 },

这样这个触底加载的功能就已经实现了. 如图

 三 遇到的一些问题

在实际开发这个过程当中,也遇到了一些问题,可以和大家分享一下,互相学习

        在测试的时候,第一次分页加载实现了,后面都没有实现,在排查之后,发现经过第一次的分页之后this.data.page即当前页面变为了3,在刷新页面之后并没有重新初始化为1,所以要在页面每次关闭之后将页面重新赋值为1,如图.

        在写getSupplyList方法时,在data里面定义好的变量使用的时候总是显示 undefined 未定义,在csdn上查到了原因,是因为在js的一些函数或者回调函数中,直接用this可能是无法访问的,需要重新定义一个变量代替this,解决方法如下,用that代替this来使用data中的变量.

         如果要实现想动图里面那样的无感触底加载的功能,只需要在对应的json文件里面加入"onReachBottomDistance": 300,可以在离底部300的时候就开始执行触底加载事件.

欢迎大家一起讨论.

本文链接地址:https://www.jiuchutong.com/zhishi/300130.html 转载请保留说明!

上一篇:微信小程序 | 小程序的事件处理(微信小程序小窗口)

下一篇:WebSocket的使用方法(JS前端)(websocket怎么用)

  • 吨位是啥意思
  • 电子商务税收的特征有哪些?
  • 咨询公司小规模纳税人怎么界定
  • 房地产自有资金投入
  • 如何计算个别资金成本?
  • 小规模纳税人购置税控设备
  • 固定资产采用工作量法计提折旧怎么算
  • 交房租对方开发票怎么开
  • 甲供材的范围
  • 税控盘锁死还能报税吗
  • 采用差额计税开什么发票
  • 多计提的费用怎么调整
  • 合伙人投入的资金怎么记账
  • 索赔发票会计入账
  • 个人独资企业生活费用扣除
  • 什么是长期应付薪酬
  • 应收票据的贴现利息应计入
  • 公司的实收资本是借款,但是利息由公司付,会计怎么做账
  • 专票 普票
  • 收购自然人股东的股权要注意什么
  • 如何给电脑文件加密并设置密码
  • 企业转让股票交什么税费呢
  • 如何查看电脑是什么牌子
  • Skype.exe - Skype是什么进程 有什么用
  • 公司转让股权交不交增值税
  • esafec.dll是什么东西
  • php抓取网页内容转换成json
  • 2015年4月4日摄于Tear Drop Arch附近的月全食,犹他州纪念碑谷 (© Alan Dyer/Alamy)
  • 短期投资计入什么科目
  • 国有土地使用证到期了怎么办
  • 预提费用的分录
  • 路径规划步骤
  • 下载下来是php
  • 会员信息查询系统
  • 应收账款坏账准备计提方法
  • 利润表中其他收益是什么
  • 本地住宿费能报销吗
  • 征收率是税率吗
  • python的多线程 吃cpu太厉害
  • mongodb数据库操作遇到的问题和解决方案
  • 企业向个人提供分期的商业活动属于
  • 应计入损益的利得有什么
  • 租赁合同印花税率多少
  • sqlplus查询结果换行
  • 收益性支出包括哪些内容
  • 期初在产品怎么算
  • 金税四期对企业影响
  • 长期待摊费用属于资产类吗
  • 广告公司非税收入标准
  • 预付账款做错可以红冲之前的凭证重新做吗
  • 营业外收入的账户核算有哪些
  • 办公室做隔断多少钱
  • 弥补企业以前年度亏损 顺序
  • 固定资产处置的会计科目
  • 上期留抵本期抵扣怎么做分录
  • 捐赠利得计入资产成本吗
  • sqlserver 储存过程
  • sql导入csv数据
  • linux版flash
  • unix操作系统有哪些主要特色
  • mac快捷功能
  • win1021h2版本怎么样
  • win7怎么设置最佳性能
  • windows8 如何关机
  • win7旗舰版系统激活密钥
  • win10无法使用内置管理员账户
  • Win10 Mobile 10586.164上手体验视频评测
  • linux 文件数量 命令
  • Win10 Mobile 10586.122 ROM安装包有多大?
  • OpenGL ES2.0-iPhone开发-part1
  • 使用NGUI时遇到物理引擎错误
  • unity如何导入资源文件
  • unity怎么创建空对象
  • jquery中删除节点方法
  • javascript基础入门视频教程
  • js编写一个标准的单例模式类
  • 珠宝消费税怎么征收
  • 河南省国家税务局通用定额发票
  • 销售哪些产品需办许可证
  • 南京地税局上班时间
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设