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

  • 13pro120hz在哪设置(苹果13pro如何设置120hz)

    13pro120hz在哪设置(苹果13pro如何设置120hz)

  • vivox70pro+怎么设置消息提醒(vivox70pro怎么设置锁屏)

    vivox70pro+怎么设置消息提醒(vivox70pro怎么设置锁屏)

  • 车道级导航怎么设置(车道级导航怎么用)

    车道级导航怎么设置(车道级导航怎么用)

  • 微信二维码提现免费吗(怎样申请微信二维码收款码)

    微信二维码提现免费吗(怎样申请微信二维码收款码)

  • mate30发布会具体时间(mate30发布会价格)

    mate30发布会具体时间(mate30发布会价格)

  • word字体20磅怎么设置(word文字设置为20磅怎么设置)

    word字体20磅怎么设置(word文字设置为20磅怎么设置)

  • qq空间隐藏点赞的人名(qq空间隐藏点赞记录)

    qq空间隐藏点赞的人名(qq空间隐藏点赞记录)

  • 路由器搜不到wifi(路由器搜不到wifi怎么办)

    路由器搜不到wifi(路由器搜不到wifi怎么办)

  • 微信验证码发送过频繁(微信验证码发送过频繁多久恢复)

    微信验证码发送过频繁(微信验证码发送过频繁多久恢复)

  • 群主可以删除微信群里的信息吗(群主可以删除微信群里其他成员的信息吗)

    群主可以删除微信群里的信息吗(群主可以删除微信群里其他成员的信息吗)

  • 手机时不时断网几秒钟后恢复(手机时不时断网没信号)

    手机时不时断网几秒钟后恢复(手机时不时断网没信号)

  • 蓝牙接收器4.0和5.0有什么区别(蓝牙接收器4.0和5.0区别在哪)

    蓝牙接收器4.0和5.0有什么区别(蓝牙接收器4.0和5.0区别在哪)

  • qq强制会话是啥意思(qq强制会话app)

    qq强制会话是啥意思(qq强制会话app)

  • oppo手机亮度调到最大但还不亮(oppo手机亮度调到最暗)

    oppo手机亮度调到最大但还不亮(oppo手机亮度调到最暗)

  • 抖音自动退出怎么回事(抖音会自动退出是怎么回事)

    抖音自动退出怎么回事(抖音会自动退出是怎么回事)

  • 停电对4g网有什么影响(停电会影响4g信号吗)

    停电对4g网有什么影响(停电会影响4g信号吗)

  • 畅享10puls在哪设置指纹(华为畅享10 plus怎样)

    畅享10puls在哪设置指纹(华为畅享10 plus怎样)

  • 微信为什么声音那么小(微信为什么声音不响)

    微信为什么声音那么小(微信为什么声音不响)

  • 火影笔记本是谁旗下的(火影笔记本是谁旗下的怎么样)

    火影笔记本是谁旗下的(火影笔记本是谁旗下的怎么样)

  • 去除图片水印的方法(去除图片水印的软件)

    去除图片水印的方法(去除图片水印的软件)

  • 录音不小心删了怎么找回(录音不小心删了怎么找回免费)

    录音不小心删了怎么找回(录音不小心删了怎么找回免费)

  • nova5i有nfc功能吗(华为nova5i手机有nfc功能吗)

    nova5i有nfc功能吗(华为nova5i手机有nfc功能吗)

  • 四川省学生资助管理系统介绍(四川省学生资助政策)

    四川省学生资助管理系统介绍(四川省学生资助政策)

  • nbalive搜不到好友(nbalive为什么没有了)

    nbalive搜不到好友(nbalive为什么没有了)

  • 阿查法拉亚盆地中的一棵柏树,路易斯安那州 (© Chris Moore/Tandem Still + Motion)(阿查法拉亚盆地 钓鱼)

    阿查法拉亚盆地中的一棵柏树,路易斯安那州 (© Chris Moore/Tandem Still + Motion)(阿查法拉亚盆地 钓鱼)

  • 印花税核定依据和核定比例
  • 进项税和销项税税率一样吗
  • 差额征收如何做账
  • 企业保持存货的必要性是什么
  • 发票已经做账但要退款账不平咋办
  • 银行存款日记账电子表格模板
  • 企业所得税完税证明怎么打印
  • 调整汇算清缴利息怎么算
  • 销毁会记凭证
  • 租赁期间怎么算
  • 关于合并商誉应该减值还是摊销的辩论
  • 公司注销时应付职工薪酬怎么处理
  • 以前年度的收入怎么调整
  • 企业相互之间借款合法吗
  • 茶叶加食用盐的妙用
  • 信托真实案例
  • 个税手续费需要开具发票吗
  • 小规模零申报资产负债表报错了要交印花税吗
  • 筹建期间的开办费包括哪些
  • 劳务公司费用成本怎么算
  • win11任务栏无法居中
  • 现金日记账期初余额怎么登账
  • 购买半成品计入什么科目
  • 王者荣耀英雄印花衣服哪里批发
  • php获取远程文件扩展名
  • linux root没有权限
  • 当前页面的脚本发生错误代码0没有注册类
  • jdk1.8环境变量设置
  • 以固定资产对外投资交税吗
  • 特许权使用费税前扣除标准
  • 售后租回怎么理解
  • zendframework3中文手册
  • php批量上传
  • php常用数组函数有哪些
  • 税务变更登记需要带的资料有哪些
  • 农产品小规模纳税人
  • 作为大学生你能为国家安全贡献哪些力量论文
  • 自动驾驶数据集 mev
  • thinkphp跨域
  • 去年的所得税计提多了怎么做分录
  • 租赁汽车折旧年限怎么算
  • 进项发票数据导出
  • 公司帐户到银行怎么取钱
  • 投资收益主要包括两大类收益
  • 预收账款的账务处理摘要
  • 域名费用怎么交
  • micro start
  • 特殊银行账户上限
  • 三个数排序c语言程序从大到小
  • vue前端页面设计
  • 净营业周期为负数
  • 评估费用由谁承担
  • PostgreSQL管理工具phpPgAdmin入门指南
  • mysql创建数据库的操作步骤
  • 关于增值税调整的补充协议
  • 员工的医药费计入什么科目
  • 商业承兑背书后怎么办
  • 筹建期费用需要结转吗
  • 公司中征码是什么样子的
  • 其他应付款社保借方余额怎么处理
  • sql参数化是什么意思
  • mysql数据库里面有一个表查的特别慢
  • Linux系统复制图片
  • 如何恢复ubuntu
  • win10系统如何开启远程桌面连接
  • windows7 usb
  • 方便存储 Win8系统的SkyDrive功能大体验
  • windows8中文版是什么版本
  • config_system_switchs
  • css各种滤镜的应用是什么
  • jquery的动画效果
  • cmd 更改密码
  • python中pandas.DataFrame的简单操作方法(创建、索引、增添与删除)
  • 用python学算法
  • shell 非
  • JS与jQ读取xml文件的方法
  • 个人所得税明细申报记录 厦门
  • 如何查询契税是否逾期
  • 广西国税官网
  • 武汉二手房交易信息
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设