微信小程序实现分页加载,触底加载下一页,滚动加载

这里我就不写wxml了,就是一个列表循环,直接看js代码逻辑,注释都写在代码后面了,这个方法可以实现无限滚动加载,直到加载完最后一条数据,也可以实现触底没数据后,二次触底可以从新加载刷新,学废了就给个三联把,感谢!

  data: {
    orderList: [],
    pageSize: 10,
    pageNum: 1,
  },
  /**
   * 上拉触底 onReachBottom微信自带的触底函数
   */
  onReachBottom: function () {
    if (this.data.pageNum * this.data.pageSize == this.data.orderList.length) { 
    // 数据列表的数量刚好等于页数*每页条数,可以请求下一页
      this.setData({
        pageNum: this.data.pageNum + 1, // 一般上拉触底是为了加载更多分页数据,所以这里页数自增
      });
        this.getorderList() // 查询列表方法
    } else { 
    // 数据列表的数量不等于页数*每页条数,说明当前页数据不足10条,已经没有更多数据了
      this.setData({
        noMor: true  // 这里在页面最底部显示一排文字,没有更多数据了
      })
    }
  },

 // 获取列表数据方法
 getorderList() {
 	app.http.getOrder({
        pageNum: this.data.pageNum,
        pageSize: this.data.pageSize
      }).then(res => {
        if (res.data.length == 0) { //请求的数据为空,没有数据
          if (this.data.pageNum == 1) { // 第一页都没有数据,直接显示暂无数据
            this.setData({
              noData: true,
            })
          } else { // 不为第一页时,请求的数据为空,说明没有更多数据了,把pageNum减一,是为了下次触底可以继续请求刷新,万一有了新数据也可以正常显示出来
            this.setData({
              noMor: true,
              pageNum: this.data.pageNum - 1
            })
          }
        } else {  // 请求的结果有数据额
          if (res.data.length == this.data.pageSize) { // 请求的数据为10条,说明下一页可能还有数据,列表添加上新的数据,把其他状态设为不显示
            this.setData({
              orderList: [...this.data.orderList, ...res.data],
              noMor: false,
              noData: false
            })
          } else { // 请求的数据没有10条,说明下一页已经暂时没有数据了,列表添加上新的数据,底部显示暂无更多数据
            this.setData({
              orderList: [...this.data.orderList, ...res.data],
              noMor: true,
              noData: false
            })
          }
        }
      })},

在这里插入图片描述

  • 6
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端攻城狮路飞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值