位置: 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怎么用)

  • 苹果手机微信接收的文件在哪里找(苹果手机微信接视频需要开锁)

    苹果手机微信接收的文件在哪里找(苹果手机微信接视频需要开锁)

  • 苹果手机短信没有提示怎么设置(苹果手机短信没声音)

    苹果手机短信没有提示怎么设置(苹果手机短信没声音)

  • 苹果耳机左比右声音大(苹果耳机的左右耳机有区别吗)

    苹果耳机左比右声音大(苹果耳机的左右耳机有区别吗)

  • 苹果不激活能连接爱思助手吗(苹果激活不连wifi可以么)

    苹果不激活能连接爱思助手吗(苹果激活不连wifi可以么)

  • qq音乐怎么多设备管理删除(qq音乐怎么设置定时关闭)

    qq音乐怎么多设备管理删除(qq音乐怎么设置定时关闭)

  • 华为p30pro可以升级5g吗(华为p30pro可以升级5g手机吗)

    华为p30pro可以升级5g吗(华为p30pro可以升级5g手机吗)

  • 华为手机怎么关闭隐私空间(华为手机怎么关机开机)

    华为手机怎么关闭隐私空间(华为手机怎么关机开机)

  • ipad微信更新不了新版本怎么办(iPad微信更新不了)

    ipad微信更新不了新版本怎么办(iPad微信更新不了)

  • icloud是干啥的(icloud到底是什么东西有什么用)

    icloud是干啥的(icloud到底是什么东西有什么用)

  • 电脑黑屏按什么键恢复win7(电脑黑屏按什么键恢复就显示个鼠标)

    电脑黑屏按什么键恢复win7(电脑黑屏按什么键恢复就显示个鼠标)

  • 圆孔键盘插上没反应(圆孔键盘插上没反应怎么回事啊)

    圆孔键盘插上没反应(圆孔键盘插上没反应怎么回事啊)

  • 戴尔g3风扇声音噪音大(戴尔g3风扇声音大)

    戴尔g3风扇声音噪音大(戴尔g3风扇声音大)

  • 微信朋友圈没声音了怎么回事(微信朋友圈没声音怎么办)

    微信朋友圈没声音了怎么回事(微信朋友圈没声音怎么办)

  • 微信长按图片翻译怎么开启(微信长按图片翻译没了)

    微信长按图片翻译怎么开启(微信长按图片翻译没了)

  • 苹果序列号以d开头是什么(苹果序列号以G开头)

    苹果序列号以d开头是什么(苹果序列号以G开头)

  • iphone11如何设置定时开关机(Iphone11如何设置密码解锁)

    iphone11如何设置定时开关机(Iphone11如何设置密码解锁)

  • 输出5v1a和5v2a的区别(输出5v=2a和5v=1000ma)

    输出5v1a和5v2a的区别(输出5v=2a和5v=1000ma)

  • 手机qq打字框怎么设置(手机qq打字框怎么设置皮肤)

    手机qq打字框怎么设置(手机qq打字框怎么设置皮肤)

  • 手机qq信息提示音怎么设置(手机qq信息提示音太小)

    手机qq信息提示音怎么设置(手机qq信息提示音太小)

  • 微信设置了不可见会被看到吗(微信设置了不可见新加的好友能看到吗)

    微信设置了不可见会被看到吗(微信设置了不可见新加的好友能看到吗)

  • 华为手环4上市时间(华为手环4上市时间及价格)

    华为手环4上市时间(华为手环4上市时间及价格)

  • 爱奇艺我的预约在哪(爱奇艺预约收费吗)

    爱奇艺我的预约在哪(爱奇艺预约收费吗)

  • 红米截屏怎么截图(红米note12怎么截屏)

    红米截屏怎么截图(红米note12怎么截屏)

  • 京东e卡app怎么充值(京东e卡APP怎么用)

    京东e卡app怎么充值(京东e卡APP怎么用)

  • vivo z5x什么时候上市的(vivo z5什么时候上市)

    vivo z5x什么时候上市的(vivo z5什么时候上市)

  • 如何通过微信定位对方位置(如何通过微信定位位置)

    如何通过微信定位对方位置(如何通过微信定位位置)

  • mate30pro有50倍变焦吗(华为mate30pro有50倍数码变焦吗?)

    mate30pro有50倍变焦吗(华为mate30pro有50倍数码变焦吗?)

  • 为什么手机声音变小(为什么手机声音变成听筒了)

    为什么手机声音变小(为什么手机声音变成听筒了)

  • oppor17怎么换微信铃声(oppor15怎么改微信号)

    oppor17怎么换微信铃声(oppor15怎么改微信号)

  • ant-design-vue 自由切换 暗黑模式dark(ant-design-vue pro)

    ant-design-vue 自由切换 暗黑模式dark(ant-design-vue pro)

  • 人工智能学习——神经网络(matlab+python实现)(人工智能课程心得体会)

    人工智能学习——神经网络(matlab+python实现)(人工智能课程心得体会)

  • 什么是增值税一般纳税人
  • 增值税发票管理办法及细则
  • 两年前的发票可以补开吗
  • 计提工会经费的科目
  • 私车公用如何处理
  • 对方开给我的专票遗失了,让我上传发票
  • 高温费国家有规定,一定要支付吗?
  • 公司报销房租还能扣税吗
  • 预付账款和暂估入账的区别
  • 企业减免的所得税税率
  • 土地使用权计入存货吗
  • 工会经费支出无效怎么办
  • 船期延迟出口开票开在了上个月会计处理是怎样的?
  • 没有收到发票的支出可以做成本吗
  • 报税系统增值税纳税申报查询可以查几年的
  • 关于330技术维护费
  • 对公账户在税务局能查到吗
  • 定额手撕发票怎么买
  • 环卫公司增值税税率
  • 汇算清缴退税计入什么科目
  • 接受捐赠物品的增值税
  • 专用发票可以抵税是什么意思
  • Win10升级win11是激活状态吗?
  • 发票登记薄的式样
  • 开具的服务费怎么做分录
  • 工商企业年报网上申报流程
  • 如果工资少发怎么办
  • bios怎么关
  • 传递优化的作用
  • 其他应付款不用付了怎么做分录
  • php wechat
  • 购买性支出和转移性支出都计入GDP
  • 贴现会不会损害所有者权益
  • 存货损失的账务处理
  • php+mongodb
  • 应收款余额在借方什么意思
  • 企业向个人租房子需要缴纳什么税
  • yolov5源码解读
  • wordpress限制ip访问
  • 政府会计公共基础设施分类
  • 以下哪些企业需要填报
  • 物业监控安装地点要求
  • 所得税视同销售行为有哪些呢?
  • 个人劳务费免税额度 年度
  • 无进项可以开票么
  • 分销佣金账务处理流程
  • 当月购买固定资产需要计提吗
  • 产品检验费怎样计算
  • 成本结转怎么做分录
  • 公司车辆违章
  • 从外面买回来的鸡蛋能孵出小鸡吗
  • 工业企业成本核算的一般程序包括下列的
  • 固定资产领用原因
  • 库存现金期末余额在哪方
  • 总公司中标分公司结算可以吗
  • 企业的研发活动阶段包括
  • 建筑企业营改增之前计税方法
  • 怎么设置材料
  • 会计凭证销毁的地方
  • mysql高级功能
  • win8无线网受限
  • slmgr.vbs /dli
  • freebsd使用手册
  • win10预览版和正式版
  • debian和ubuntu server
  • Win10 TH2首个重要更新后应用商店依然存在问题
  • WIN10系统中引导修复不工作
  • 如何在windows10中获取帮助
  • win7电脑启动
  • windows8.1控制面板
  • jquery鼠标点击
  • 如何获取system权限win10
  • jquery常见的选择器
  • eevee引擎
  • JavaScript中getUTCMinutes()方法的使用详解
  • 什么是总分机构汇总纳税
  • 药店迁址流程2019
  • 混合销售定义是什么意思
  • 江苏房产税如何计算公式
  • 北京市地税局电话是多少
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设