微信小程序列表数据上拉加载,下拉刷新

1.上拉加载数据,数据 = 下一页数据 + 前面的数据([...this.data.list, ...data.records)

2.当用户上拉加载过快时,会不停的调用接口,需要节流阀isLoading

3.上拉加载到最后一页的判断,isFinish

javascript 复制代码
// pages/list.js
import { reqList } from "../../api/list"

Page({

  data:{
    list:[],
    total:0,
    isFinish:false, // 判断数据是否加载完成
    isLoading:false, //判断数据是否发送中
    requestData:{ // 接口请求参数,根据自己接口调整
      page:1,
      limit:10
    }
  },
  
  // 获取列表
  async getList(){
    // 在请求发送之前。需要将isLoading设置true, 发送中
    this.data.isLoading = true
    // 发送请求获取列表数据, 接口根据需要改动
    const { data } = await reqList(this.data.requestData)
    this.setData({
      list:[...this.data.list, ...data.records],
      total:data.total
    })
    // 请求结束以后,需要将isLoading改为false
    this.data.isLoading = false
  },

// 上拉加载
  onReachBottom(){
    const { list, total, isLoading} = this.data
    if(isLoading) return
    // 数据加载完毕,页码不在新增
    if(list.length === total){
      this.setData({
        isFinish:true
      })
      return
    }
    const {page} = this.data.requestData
    // 页码+1
    this.setData({
      requestData:{...this.data.requestData, page:page+1}
    })
    this.getList()
  },

  //下拉刷新
  onPullDownRefresh(){
    this.setData({
      list:[],
      total:0,
      isFinish:false,
      requestData:{...this.data.requestData, page:1}
    })
    this.getList()
    wx.stopPullDownRefresh() //关闭下拉刷新
  },

  onLoad(options){
    Object.assign(this.data.requestData, options)
    this.getList()
  }
})
相关推荐
律宏阔1 小时前
Taro 4 项目从 npm 迁移到 pnpm 踩坑实录
前端·微信小程序·taro
恩创软件开发4 小时前
自助KTV系统管理员续单功能
经验分享·小程序
多客:duokelijie20 小时前
代练订单系统选型思路:跨品类游戏接入、订单分层管理、自动结算逻辑拆解!
数据库·mysql·微信小程序·前端框架·uni-app·php·持续部署
AI源码2 天前
在线考试小程序
小程序·notepad++
计算机毕设定制辅导-无忧学长2 天前
《基于微信小程序健康习惯激励系统设计与实现》
java·spring boot·mysql·微信小程序·uniapp·健康习惯激励系统
2501_916008892 天前
iPhone 设备信息查看,用 KeyMob 看型号、序列号、电池健康和 UDID
android·ios·小程序·https·uni-app·iphone·webview
拖孩3 天前
流量主门槛从 500 降到 100,我的小程序上线 18 小时够到了线
前端·后端·微信小程序
云-缩影3 天前
做微信小程序,自建服务器还是用云托管:技术选型对比
服务器·微信小程序·小程序
极限挑战哥4 天前
共享电单车联营平台分账架构实践:二清合规与自动分账零人工方案
java·大数据·人工智能·微信小程序·架构·微信公众平台
超级新零售4 天前
服装订货会数字化:商品版本、订单状态与后续配发数据如何衔接?
大数据·小程序·企业微信