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

  • 微信怎么把别人的微信推给别人(微信怎么把别人拉黑)

    微信怎么把别人的微信推给别人(微信怎么把别人拉黑)

  • 苹果ipad返回键是哪个(苹果ipad返回键怎么调出来)

    苹果ipad返回键是哪个(苹果ipad返回键怎么调出来)

  • 三星旗舰手机有哪几款(三星旗舰手机有哪些还是lcd屏)

    三星旗舰手机有哪几款(三星旗舰手机有哪些还是lcd屏)

  • 微信语音老是连接失败(微信语音老是连接中断是怎么回事)

    微信语音老是连接失败(微信语音老是连接中断是怎么回事)

  • 京东家庭号有什么用(京东家庭号有什么用能看到对方买了什么东西吗?)

    京东家庭号有什么用(京东家庭号有什么用能看到对方买了什么东西吗?)

  • 支付宝智能语音助手怎么用(支付宝智能语音提示未掌握此功能)

    支付宝智能语音助手怎么用(支付宝智能语音提示未掌握此功能)

  • 5a快充线是什么(什么叫5a快充数据线)

    5a快充线是什么(什么叫5a快充数据线)

  • mha-al00是什么手机(mha-al00是什么手机多少钱)

    mha-al00是什么手机(mha-al00是什么手机多少钱)

  • win7电脑运行很慢(win7电脑运行慢)

    win7电脑运行很慢(win7电脑运行慢)

  • 阻止跨网站跟踪是什么意思(阻止跨网站跟踪为什么要关闭)

    阻止跨网站跟踪是什么意思(阻止跨网站跟踪为什么要关闭)

  • 只有微信号,什么也没绑,可以找回密码吗(只有微信号,什么都没有)

    只有微信号,什么也没绑,可以找回密码吗(只有微信号,什么都没有)

  • 路由器DNS设置多少(无线路由器dns填多少)

    路由器DNS设置多少(无线路由器dns填多少)

  • 为什么苹果手机浏览器显示未连接互联网(为什么苹果手机会发烫)

    为什么苹果手机浏览器显示未连接互联网(为什么苹果手机会发烫)

  • iphonexs外放有杂音滋滋(iphonexs外放有破音声)

    iphonexs外放有杂音滋滋(iphonexs外放有破音声)

  • iphonex和xs屏幕一样吗(iphonex和iphonexs屏幕区别)

    iphonex和xs屏幕一样吗(iphonex和iphonexs屏幕区别)

  • 苹果x漏液如何修复(苹果x漏液是什么样子的)

    苹果x漏液如何修复(苹果x漏液是什么样子的)

  • 苹果官网可以分期付款吗(苹果官网可以分期免息吗)

    苹果官网可以分期付款吗(苹果官网可以分期免息吗)

  • 施工横道图横线怎么画(施工横道图横线是什么)

    施工横道图横线怎么画(施工横道图横线是什么)

  • 手机如何分享wifi密码(手机如何分享wifi密码给电脑使用)

    手机如何分享wifi密码(手机如何分享wifi密码给电脑使用)

  • 天猫店铺怎么设置预售(天猫店铺怎么设置自动回复)

    天猫店铺怎么设置预售(天猫店铺怎么设置自动回复)

  • 小米八怎么设置永不熄屏(小米八怎么设置灵动岛)

    小米八怎么设置永不熄屏(小米八怎么设置灵动岛)

  • 小米8se怎么设置熄屏时间(小米8se怎么设置屏幕常亮)

    小米8se怎么设置熄屏时间(小米8se怎么设置屏幕常亮)

  • 王者荣耀中甄姬技能有哪些?(王者荣耀中甄姬的cp是谁)

    王者荣耀中甄姬技能有哪些?(王者荣耀中甄姬的cp是谁)

  • Linux下网络故障诊断(linux 网络故障)

    Linux下网络故障诊断(linux 网络故障)

  • helpsvc.exe是什么进程 作用是什么 helpsvc进程查询(help是什么文件夹可以删除吗)

    helpsvc.exe是什么进程 作用是什么 helpsvc进程查询(help是什么文件夹可以删除吗)

  • sshpass命令  非交互式验证SSH密码(ssh非交互式登录)

    sshpass命令 非交互式验证SSH密码(ssh非交互式登录)

  • 什么时候计提企业所得税
  • 车保保险合同
  • 个人出租不动产税率
  • 什么是企业税务登记号
  • 息税前利润计算每股收益
  • 公司名下的车怎么报废
  • 公司开电费发票怎么入账
  • 应付票据与应付账款
  • 在建期间土地使用税可以资本化吗
  • 2019年所得税汇算清缴政策
  • 超过认证期限的发票未抵扣能红冲吗
  • 坏账损失的核算方法一般有两种
  • 存货转为公允价值怎么算
  • 现金收货款要填什么单子
  • 费用暂估入账
  • 可供分配利润包括所得税吗
  • 工程预付款未按时支付
  • 发票已认证未抵扣怎么办
  • 个体户生产经营所得税税率表
  • 换账套期初数怎么填
  • 装卸增值税税率最新的
  • 个体户财务负责人风险有哪些
  • 业务推广费税务处理
  • 个人代开专票季未超30万附加税需要交吗
  • 招待费进项税能抵扣嘛
  • 补交前几年的进项发票
  • 并购动因理论有什么
  • php数组函数,选班长
  • PHP:pcntl_wexitstatus()的用法_PCNTL函数
  • phpfilter
  • 建筑行业施工规范有哪些
  • php输出数字
  • 增值税纳税人如何界定
  • 社保和公积金个人缴纳在哪里查看
  • 毕业设计烦死了
  • 开具利息收入发票需不需要有经营范围
  • 未收回的货款属于什么会计科目
  • 什么是企业会计确认计量和报告的空间范围
  • 个人向企业借贷违法吗
  • 小型生产加工企业税率
  • sqlserver2008安装闪退
  • 开具房租发票的分录如何做?
  • 盈余公积年初和年末没有变化
  • 非营利组织的一般战略是
  • 固定资产的折旧账务处理
  • 开办费用怎么处理
  • 现金比率的计算例题
  • 商业承兑汇票风险高吗
  • 出口没做免税申请怎么办
  • 营业税金及附加包括哪些
  • 无形资产的处置方式有哪些
  • 知识产权服务费可以计入研发费用吗
  • 没有报关单可以出口吗
  • 营业外收支主要有哪些
  • 税收滞纳金计入营业外收入的哪里
  • 开始建账需要哪些数据
  • 公司自建的房子能买吗
  • 用企业管理器创建一个备份设备
  • win7系统出现reboot and
  • windows10关闭usb端口
  • 两台电脑如何共享网络
  • windowns vista
  • rpm包安装的apache可以如何启动
  • Windows时间同步时出错该怎么解决?
  • 传统与现代的结合英文
  • win10预览版21277下载
  • xp系统的文件要用什么才能打开
  • win7系统禁用网络后如何开启
  • windows7 读不了u盘怎么解决
  • win10系统开机后任务栏无响应怎么解决
  • 命令窗口的作用
  • 统计动态分析
  • js面向对象编程实例
  • node.js 生成pdf
  • 学javascript的书
  • python编写api接口
  • javascript数据类型有哪些
  • android 进程通信
  • 快速掌握英语的方法
  • JavaScript中的NaN代表什么
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设