当前位置: 首页 > news >正文

vue3+ts+vant4 列表下拉刷新+分页加载

效果图

主要代码:

<van-pull-refreshv-model="refreshing"@refresh="handleRefresh"pulling-text="下拉释放刷新"loosing-text="下拉释放刷新"loading-text="加载中"><van-listv-model:loading="loading":finished="finished"finished-text="没有更多了"loading-text="加载中"@load="onLoad"><div class="pt-8 px-2"><divv-for="item in historyList":key="item.external_id"class="border border-solid border-[#E2E8F0] rounded-xl shadow-[0_5px_16px_2px_#F1F5F9] px-5 py-4 mb-5 cursor-pointer"><div class="flex justify-between items-center border-b border-dashed border-[#D2D2D2] pb-3"><div class="flex items-center"><img src="@/assets/images/date.png" alt="" class="w-7" /><span class="text-[#888] ml-2">{{ item.create_time }}</span></div><div class="px-2 py-1 rounded-md":class="getStatusStyle(item.status).style">{{ getStatusStyle(item.status).desc }}</div></div><div class="flex items-center justify-between text-[#333] mt-3"><span>{{ item.account_phone }}</span><span class="font-semibold">{{ item.amount }}</span></div></div></div></van-list><van-back-top right="15vw" bottom="10vh" />
</van-pull-refresh>
const loading = ref(false) //加载状态
const finished = ref(false) //是否加载完成
const refreshing = ref(false)
const page = ref(1)
const pageSize = ref(5)
interface HistoryList {external_id: stringcreate_time: stringstatus: numberaccount_phone: stringamount: string
}
const historyList = ref<HistoryList[]>([])
const onLoad = async () => {
//此处为分页加载方法,页面一进来就会请求try {const params = {page: page.value,page_size: pageSize.value}const result = await xxxxx(params)if (result?.data?.data?.length == 0) {finished.value = true //数据为空,查询完成} else {historyList.value = historyList.value.concat(result.data.data) //数据拼接page.value++ //页码+1}} catch (error) {finished.value = true //接口发生错误的时候,让查询完成,不然会死循环} finally {loading.value = false //loading结束}
}
const handleRefresh = async () => {//此处为下拉刷新方法,一进方法refreashing就为truepage.value = 1 //下拉刷新页数置为1historyList.value = [] //清空数据finished.value = false //标记加载状态为未完成loading.value = true //加载中await onLoad()refreshing.value = false //所以加载完接口就置为false
}
const getStatusStyle = (status: number) => {
//此处为设置状态的样式,css使用的是tailwindcssswitch (status) {case 0:return {desc: '处理中',style: 'text-[#FF9249] bg-[#FCEEE3]'}case 1:return {desc: '成功',style: 'text-[#6FC682] bg-[#E7F6F1]'}default:return {desc: '失败',style: 'text-[#FF5A5A] bg-[#FCE3E3]'}}
}

在写这块需求过程中,写了个死循环导致报错,找了大半天才找到问题,已解决,与以上内容无关

有兴趣可以看看本人另一篇博客
记一次找不到的死循环-CSDN博客

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • C学习(数据结构)--> 实现顺序结构二叉树
  • 使用maven快速生成打包文件2
  • EmguCV学习笔记 C# 5.2 仿射变换
  • 从CSS注入到渗透未知网页
  • Nuxt学习_基础知识(二)
  • 开源模型应用落地-qwen2-7b-instruct-LoRA微调模型合并-Axolotl-单机单卡-V100(十)
  • 短剧视频推广连续多日遭受大量DDOS攻击,如何应对
  • 单片机驱动彩屏最简方案:单片机_RA8889最小开发板驱动控制TFT彩屏介绍(一)方案架构
  • 如何优雅的在页面上嵌入AI-Agent人工智能
  • [godot] 采用状态机时,如何处理攻击时移动?如“冲撞”
  • 【R语言】基于多模型的变量重要性图 (Variable Importance Plots)
  • 开学季数码好物分享!推荐适合学生党好用又实惠的平替电容笔!
  • 叉车驾驶员状态监控系统,司机身份安全识别,强化监管能力建设!
  • pyqt 用lamada关联信号 传递参数 循环
  • 富格林金业:注意避免曝光交易黑幕
  • 《Javascript高级程序设计 (第三版)》第五章 引用类型
  • 30天自制操作系统-2
  • Apache Spark Streaming 使用实例
  • EOS是什么
  • js写一个简单的选项卡
  • NLPIR语义挖掘平台推动行业大数据应用服务
  • node-glob通配符
  • Redis提升并发能力 | 从0开始构建SpringCloud微服务(2)
  • SQLServer之创建数据库快照
  • 不发不行!Netty集成文字图片聊天室外加TCP/IP软硬件通信
  • 得到一个数组中任意X个元素的所有组合 即C(n,m)
  • 构建二叉树进行数值数组的去重及优化
  • 关于 Linux 进程的 UID、EUID、GID 和 EGID
  • 关于List、List?、ListObject的区别
  • 聊聊flink的TableFactory
  • 配置 PM2 实现代码自动发布
  • 什么是Javascript函数节流?
  • 使用 QuickBI 搭建酷炫可视化分析
  • - 转 Ext2.0 form使用实例
  • 分布式关系型数据库服务 DRDS 支持显示的 Prepare 及逻辑库锁功能等多项能力 ...
  • 好程序员web前端教程分享CSS不同元素margin的计算 ...
  • 昨天1024程序员节,我故意写了个死循环~
  • # 利刃出鞘_Tomcat 核心原理解析(八)-- Tomcat 集群
  • #HarmonyOS:软件安装window和mac预览Hello World
  • #php的pecl工具#
  • #我与Java虚拟机的故事#连载11: JVM学习之路
  • (2)(2.10) LTM telemetry
  • (pojstep1.1.1)poj 1298(直叙式模拟)
  • (pojstep1.3.1)1017(构造法模拟)
  • (超简单)构建高可用网络应用:使用Nginx进行负载均衡与健康检查
  • (二)WCF的Binding模型
  • (附源码)springboot太原学院贫困生申请管理系统 毕业设计 101517
  • (附源码)计算机毕业设计ssm高校《大学语文》课程作业在线管理系统
  • (附源码)计算机毕业设计高校学生选课系统
  • (六) ES6 新特性 —— 迭代器(iterator)
  • (四)库存超卖案例实战——优化redis分布式锁
  • .h头文件 .lib动态链接库文件 .dll 动态链接库
  • .Net Remoting常用部署结构
  • .Net Web项目创建比较不错的参考文章
  • .NET 动态调用WebService + WSE + UsernameToken