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

  • 淘宝48小时不发货怎么赔偿(淘宝48小时不发货会扣分吗)

    淘宝48小时不发货怎么赔偿(淘宝48小时不发货会扣分吗)

  • 苹果手机淘宝返回不了(苹果手机淘宝返回小箭头反回不了是怎么回事)

    苹果手机淘宝返回不了(苹果手机淘宝返回小箭头反回不了是怎么回事)

  • 苹果电脑del键在哪(苹果电脑del键在哪里)

    苹果电脑del键在哪(苹果电脑del键在哪里)

  • 手机90hz和60刷新率有什么区别(手机屏幕刷新60和90有什么区别)

    手机90hz和60刷新率有什么区别(手机屏幕刷新60和90有什么区别)

  • 淘宝限制下单永久怎么办(淘宝限制下单永久怎么解封)

    淘宝限制下单永久怎么办(淘宝限制下单永久怎么解封)

  • 快手如何设置头像挂件?(快手头像怎么弄2020)

    快手如何设置头像挂件?(快手头像怎么弄2020)

  • 淘宝展现量什么意思(淘宝里展现量指什么)

    淘宝展现量什么意思(淘宝里展现量指什么)

  • 电脑显示屏右下角有一块白的(电脑显示屏右下角的图标没有了)

    电脑显示屏右下角有一块白的(电脑显示屏右下角的图标没有了)

  • 快手极速版如何暂停视频(快手极速版如何注销账号?)

    快手极速版如何暂停视频(快手极速版如何注销账号?)

  • 路由器选择需要考虑的基本因素(设置路由器需要)

    路由器选择需要考虑的基本因素(设置路由器需要)

  • 手机如何下载电视剧(手机如何下载电视剧全集)

    手机如何下载电视剧(手机如何下载电视剧全集)

  • 来电提醒为您服务我们将尽快用短信通知对方(来电提醒为您服务)

    来电提醒为您服务我们将尽快用短信通知对方(来电提醒为您服务)

  • 华为P30pro手机有双卡双待吗(华为p30pro手机有多长)

    华为P30pro手机有双卡双待吗(华为p30pro手机有多长)

  • 微博保存的视频去哪了(微博保存的视频在哪里能找到)

    微博保存的视频去哪了(微博保存的视频在哪里能找到)

  • 快手k币怎么兑换人民币(快手k币怎么兑换成现金)

    快手k币怎么兑换人民币(快手k币怎么兑换成现金)

  • 荣耀20如何清理后台(荣耀20如何清理垃圾)

    荣耀20如何清理后台(荣耀20如何清理垃圾)

  • excel只复制数字不复制公式(excel只复制数字快捷键)

    excel只复制数字不复制公式(excel只复制数字快捷键)

  • 拼多多拍照搜索在哪里(拼多多拍照搜索会把照片传网上吗)

    拼多多拍照搜索在哪里(拼多多拍照搜索会把照片传网上吗)

  • 三星s10开发者选项在哪里(三星s10开发者选项怎么开)

    三星s10开发者选项在哪里(三星s10开发者选项怎么开)

  • 微信动态背景怎么设置(微信动态背景怎么换)

    微信动态背景怎么设置(微信动态背景怎么换)

  • 监控系统关闭开启步骤(监控系统关闭后如何开启)

    监控系统关闭开启步骤(监控系统关闭后如何开启)

  • 苏宁如何退货(苏宁买的东西怎么退)

    苏宁如何退货(苏宁买的东西怎么退)

  • 电脑无反应怎么办(电脑无反应怎么办不能关机)

    电脑无反应怎么办(电脑无反应怎么办不能关机)

  • 个体户定期定额征收标准
  • 企业所得税年度汇算清缴时间
  • 税务专业是什么学位
  • 现金流量表季度报表本期金额
  • 或有资产的确认条件ACCA
  • 会员退费怎么算
  • 个税手续费发给个人怎么做账
  • 未确认融资费用计算公式
  • 筹建期间有收入怎么办
  • 本票汇票支票的区别
  • 固定基金怎么算
  • 药店药品成本怎么核算
  • 滞销款的最好销售办法
  • 三方扣款fd6
  • 关联企业股份
  • 金税盘管理费用怎么结转
  • 税收分类编码选错了怎么办
  • 兼职人员工资个税怎么申报
  • 存货如何处理才能避税
  • 固定资产折旧率是多少
  • 费用计入资产
  • 出口的会计分录
  • 个人借公司款账务处理
  • mac系统如何切换大小写
  • 新版edge浏览器如何打开ie浏览器
  • 股权转让的会计凭证
  • 外贸综合服务企业代办退税
  • 4芯网线插线顺序图
  • 如何加快身体的新陈代谢
  • 3gwifi怎么用
  • php date format
  • php 获取文件类型
  • 单位缴费基数申报提交了能改吗
  • 期间费用计算公式
  • 盘亏结转
  • 做毕业设计,前景如何
  • 企业印花税的申报
  • 公司代个人缴纳社保,但不发工资和交税
  • 固定资产的会计政策有哪些
  • 发票超额怎么办
  • 会计的借记和贷记什么意思
  • 技术服务费该怎么收
  • db2数据库安装服务器的环境
  • sql server 新增字段
  • sql server 2008的安全机制
  • 外购商品发放给员工 进项税额能不能抵扣
  • 税务发票金额可以增加吗?
  • 工业企业分为哪几类
  • 计提工会经费如何划入工会专户
  • 企业购进生产用品税率
  • 外债借款利率
  • 稳岗返还计入营业外收入
  • 如何理解非货币性资产
  • 财务费用具体包括
  • 购买理财收入计入什么科目
  • 技术服务费发票怎么开
  • 购买公司分录怎么写
  • 拿支票取钱
  • 帮客户支付的机票计入什么科目
  • 班车租赁费计入福利费吗
  • 在centos上安装ftp服务应运行指令
  • centos编译器
  • xp系统怎么找回删除的文件
  • SWNETSUP.EXE - SWNETSUP是什么进程 有什么用
  • win7显示网上邻居图标
  • win10mobile官网
  • win7怎样解除无线连接限制
  • react either
  • javaScript 事件绑定、事件冒泡、事件捕获和事件执行顺序整理总结
  • javascript括号
  • nodejs worker
  • AngularJS中controller控制器继承的使用方法
  • js发送ajax请求
  • javascript基础编程
  • javascript面向对象 第三方类库
  • 北京朝阳地税局电话号码
  • 云南国税通用发票查询
  • 管道运输企业的核心指标是
  • 杭州市电子税务局官网登录
  • 贵阳市税务电话
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设