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

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()
  }
})
相关推荐
2501_91510632几秒前
iOS 混淆与 IPA 加固全流程,多工具组合实现无源码混淆、源码防护与可审计流水线(iOS 混淆|IPA 加固|无源码加固|App 防反编译)
android·ios·小程序·https·uni-app·iphone·webview
游戏开发爱好者82 分钟前
用多工具组合把 iOS 混淆做成可复用的工程能力(iOS混淆 IPA加固 无源码混淆 Ipa Guard)
android·ios·小程序·https·uni-app·iphone·webview
lypzcgf2 小时前
商城小程序数据库表结构文档
数据库·小程序·电商
2501_915921432 小时前
掌握 iOS 26 App 性能监控,从监测到优化的多工具组合流程
android·macos·ios·小程序·uni-app·cocoa·iphone
知识分享小能手3 小时前
uni-app 入门学习教程,从入门到精通, uni-app常用API的详细语法知识点(上)(5)
前端·javascript·vue.js·学习·微信小程序·小程序·uni-app
Strawberry963 小时前
chooseVideo传视频无法取到缩略图
微信小程序
一匹电信狗4 小时前
【C++】手搓AVL树
服务器·c++·算法·leetcode·小程序·stl·visual studio
2501_916008894 小时前
手机 iOS 系统全解析,生态优势、开发机制与跨平台应用上架实践指南
android·ios·智能手机·小程序·uni-app·iphone·webview
00后程序员张6 小时前
Fiddler使用教程,全面掌握Fiddler抓包工具的配置方法、代理设置与调试技巧(HTTPHTTPS全解析)
前端·测试工具·ios·小程序·fiddler·uni-app·webview
2501_916008896 小时前
HTTPS 下的 DDoS 防护与抓包分析实战,从检测到快速缓解的工程化打法
网络协议·ios·小程序·https·uni-app·iphone·ddos