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

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()
  }
})
相关推荐
Jing_Rainbow3 小时前
【 Weapp-1 /Lesson18(2025-11-03)】# 微信小程序开发全解析:从项目结构到生态优势 🚀
微信·微信小程序·程序员
千寻技术帮3 小时前
50045_基于微信小程序的民宿预订管理系统
微信小程序·源码·ppt·项目文档·民宿
禁止摆烂_才浅5 小时前
Taro 小程序页面返回传参完整示例
react.js·微信小程序·taro
vx_dmxq21110 小时前
【微信小程序学习交流平台】(免费领源码+演示录像)|可做计算机毕设Java、Python、PHP、小程序APP、C#、爬虫大数据、单片机、文案
java·spring boot·python·mysql·微信小程序·小程序·idea
腾马科技12 小时前
小酒馆白酒饮料订单配送立即点餐存酒小程序源码
微信小程序·点餐小程序
学点程序12 小时前
AI辅助开发小程序的实践分享
小程序
vx_dmxq2111 天前
【PHP考研互助系统】(免费领源码+演示录像)|可做计算机毕设Java、Python、PHP、小程序APP、C#、爬虫大数据、单片机、文案
java·spring boot·mysql·考研·微信小程序·小程序·php
蹦极的考拉1 天前
夜间无法登录:ThinkPHP api接口 23:00 准时罢工的排查全纪录
小程序·thinkphp·api接口·无法登陆
vx_vxbs661 天前
【SSM电影网站】(免费领源码+演示录像)|可做计算机毕设Java、Python、PHP、小程序APP、C#、爬虫大数据、单片机、文案
java·spring boot·python·mysql·小程序·php·idea
我命由我123451 天前
微信开发者工具 - 模拟器分离窗口与关闭分离窗口
前端·javascript·学习·微信小程序·前端框架·html·js