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

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()
  }
})
相关推荐
黄华SJ520it4 小时前
预约上门系统开发:懒人经济下的商业机遇与技术实践
小程序·系统开发
软件技术新观察6 小时前
2026年北京教育医疗小程序与APP定制开发:十大服务商实力测评
大数据·小程序
万岳科技程序员小金7 小时前
真人数字人小程序如何开发?AI数字人平台搭建流程全面解析
人工智能·小程序·ai数字人系统源码·ai数字人平台搭建·ai数字人小程序开发
didiplus16 小时前
我在GitHub刷到一个诗词API,顺手写了款小程序
微信小程序
言乐618 小时前
Python实现可运行解密游戏游戏框架
python·游戏·小程序·游戏程序·关卡设计
2501_915106321 天前
iOS 软件测试工具性能监控、日志分析 KeyMob、Instruments等
android·ios·小程序·https·uni-app·iphone·webview
云迈科技-软件定制开发1 天前
2026 AI智能体小程序APP开发怎么做:从场景规划到上线交付的完整参考
大数据·人工智能·小程序
小码哥0681 天前
医院陪诊小程序怎么开发-医院陪诊小程序源码功能-微信小程序 医院健康陪诊陪护系统
微信小程序·小程序·医院陪诊·陪诊系统·陪诊陪诊
书中枫叶2 天前
从「上次几点喂奶」到全栈小程序:我做了个喂宝助手
mongodb·微信小程序·node.js
黄华SJ520it2 天前
柯尔嫚商城模式开发:从概念到实现的完整指南
小程序·系统开发