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

  • 电脑突然重启的解决办法是什么(电脑突然重启为什么)

    电脑突然重启的解决办法是什么(电脑突然重启为什么)

  • 华为手机微博开启相机权限在哪设置(华为手机微博通知提醒怎么设置)

    华为手机微博开启相机权限在哪设置(华为手机微博通知提醒怎么设置)

  • 硬盘版是什么意思(硬盘版游戏什么意思)

    硬盘版是什么意思(硬盘版游戏什么意思)

  • 储存模式下不可用是什么意思(储存模式下不可编辑文件)

    储存模式下不可用是什么意思(储存模式下不可编辑文件)

  • 台积电全名(台积电全名叫什么)

    台积电全名(台积电全名叫什么)

  • 腾讯会议手机可以共享屏幕吗(腾讯会议手机可以开摄像头吗)

    腾讯会议手机可以共享屏幕吗(腾讯会议手机可以开摄像头吗)

  • 微信为什么突然被盗了(微信为什么突然自动退出登录)

    微信为什么突然被盗了(微信为什么突然自动退出登录)

  • beats无线可以连安卓吗(beats无线耳机怎么连接)

    beats无线可以连安卓吗(beats无线耳机怎么连接)

  • ipad的pages文稿打不开(ipad page文稿使用教程)

    ipad的pages文稿打不开(ipad page文稿使用教程)

  • 微信群上限(微信群上限200人怎么办)

    微信群上限(微信群上限200人怎么办)

  • 华为P40防水吗(华为p60防水级别)

    华为P40防水吗(华为p60防水级别)

  • 荣耀note8有没有nfc功能(荣耀note8有红外功能吗)

    荣耀note8有没有nfc功能(荣耀note8有红外功能吗)

  • 微博怎么设置手机型号隐蔽(微博怎么设置手机号搜不到)

    微博怎么设置手机型号隐蔽(微博怎么设置手机号搜不到)

  • 小米8原装充电器是几a的(小米8原装充电器型号)

    小米8原装充电器是几a的(小米8原装充电器型号)

  • 华为mate30pro慢动作怎么设置(华为mate30pro慢动作8倍无效)

    华为mate30pro慢动作怎么设置(华为mate30pro慢动作8倍无效)

  • 免拼成功还要付钱么(免拼购买成功是什么意思)

    免拼成功还要付钱么(免拼购买成功是什么意思)

  • 酷狗怎样开启桌面歌词(酷狗音乐怎么开启桌面)

    酷狗怎样开启桌面歌词(酷狗音乐怎么开启桌面)

  • ipad下载的文件查看(ipad下载的文件怎么改后缀)

    ipad下载的文件查看(ipad下载的文件怎么改后缀)

  • soul怎么搜索好友(soul上怎么搜索)

    soul怎么搜索好友(soul上怎么搜索)

  • 拼多多拼团成功后可以取消订单吗(拼多多拼团成功退款会影响其他人吗)

    拼多多拼团成功后可以取消订单吗(拼多多拼团成功退款会影响其他人吗)

  • 专有钉钉H5微应用开发,个人总结,详细教程(钉钉h5微应用)

    专有钉钉H5微应用开发,个人总结,详细教程(钉钉h5微应用)

  • vue3+ts深入组件(一)Props(深入vue3+typescript技术栈)

    vue3+ts深入组件(一)Props(深入vue3+typescript技术栈)

  • dede后台左侧菜单空白或不显示的解决办法(完美解决)

    dede后台左侧菜单空白或不显示的解决办法(完美解决)

  • 亏损属于什么科目
  • 计提当月社保会计分录
  • 支付宝过路费开票小程序
  • 如何在网上查询发票
  • 以旧换新帐务处理
  • 企业股权转让是否交企业所得税
  • 怎么让银行同意商转公
  • 应付职工薪酬如何填列
  • 认缴制下实缴资本流程
  • 公司进项销项税差异较大
  • 税务部门如何核定税额
  • 建安费增值税怎么算
  • 国税定额发票有效期是多长时间
  • 少交了增值税怎么补
  • 小微企业所得税优惠政策最新2023
  • 饭店试菜费用如何计算
  • 水利基金减免政策2022
  • 承包学校的食堂如何纳税
  • 分公司可以再开分公司吗
  • 上年多计提附加税调整了,今年怎么调整
  • 资本公积转增资本时应注意的问题主要包括哪些?
  • 进项发票已入账抵扣后开负数红冲怎么处理
  • 公司房租押金收不回来账务处理
  • 跨年的暂估成本怎么冲回
  • 保护地址是什么意思
  • 电脑自我诊断
  • 股权无偿赠与协议书范本
  • 预收预付不一致什么意思
  • 哪些情况需要做进项税转出
  • 牙痛怎么办怎么治疗
  • 黄石国家公园的英语怎么读
  • 原材料预付款如何做账
  • 公司偷税漏税有哪些表现形式
  • 电子发票和纸质发票的法律效力
  • 残疾人保障金工资总额包括年终奖吗
  • 银行历年账单怎么查
  • 生成php文件
  • vue开发教程
  • php ajax
  • 对方代垫保险费算不算入账价值
  • 外经证过期没有注销罚款多少
  • 客户赔偿款放在哪里
  • mongodb 聚合
  • 织梦cms怎么样
  • 企业所得税汇算清缴表
  • 固定资产的
  • 应交增值税进项税额为什么记借方
  • 增值税附加税包括哪些税种及税率
  • 机票价格分类
  • 生产成本里面的直接人工
  • 发票作废才能验旧吗
  • 采购人员垫付怎么入账
  • 小规模公司怎么做账
  • 企业风险管理有哪些方面
  • mysql必知必会mobi
  • sql语句学习
  • sql中的存储过程是干嘛用的
  • mysql迁移方案
  • 如何在mysql显示当前用户
  • windows server 202
  • xp无法识别的usb设备 怎么解决
  • 注册表禁止windows自动更新
  • 禁用windows键快捷键
  • linux mv命令详解
  • 重装系统前 病毒怎么办
  • centos设置双网卡
  • 命令行批量重命名
  • win7主要有哪些内容
  • win8笔记本电脑投屏方法
  • winxp系统优化
  • win7蓝屏代码0x0000007e
  • xp装windows7
  • 用python三角形
  • Unity3D游戏开发标准教程吴亚峰于复兴人民邮电出版社
  • 安卓手机的手势密码保存在哪个文件
  • nodejs调用npm命令
  • shell函数写法
  • js使用类
  • 国家税务总局官网电子税务局
  • 浙江网上税务局app下载
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设