uni-app框架+vue3 实现上拉加载和下拉刷新功能

前言:哈喽,大家好,我是码喽的自我修养!之前给大家分享了【vue2+uniapp实现上拉加载和下拉刷新功能】uni-app框架+vue2 实现上拉加载和下拉刷新功能icon-default.png?t=N7T8https://blog.csdn.net/2301_78542842/article/details/140626170?spm=1001.2014.3001.5502

然后有小伙伴@我使用vue3来实现,今天它来啦!创作不易,如果能帮助到带大家,欢迎收藏+关注哦 💕

🌈🌈文章目录

一、实现上拉加载更多

1.配置pages.json

2.声明onReachBottom事件处理函数

3.进行新旧数据的拼接处理

4.增加是否没有更多数据的判断

二、实现下拉刷新

1.配置pages.json

2.声明onPullDownRefresh事件处理函数

3.修改getWallListData函数并调用结束刷新API

一、实现上拉加载更多

1.配置pages.json

打开项目根目录中的pages.json配置文件,为想要实现上拉加载的页面配置上拉触底的距离:

		{"path" : "pages/classlist/classlist","style" : {"navigationBarTitleText" : "咸虾米壁纸分类列表","enablePullDownRefresh" : true,"onReachBottomDistance": 50}},
2.声明onReachBottom事件处理函数

在vue文件中声明onReachBottom事件处理函数,用来监听页面的上拉触底行为:

	// 触底加载onReachBottom(()=>{queryParams.value.pageNum++getWallListData()})
3.进行新旧数据的拼接处理

改造getWallListData函数,当列表数据请求成功之后,进行新旧数据的拼接处理:

	// 获取分类壁纸列表let wallList = ref([])const getWallListData =async ()=>{let res = await getWallList(queryParams.value)wallList.value = [...wallList.value,...res.data]}
4.增加是否没有更多数据的判断

如果已经是最后一页数据了,则在底部显示没有更多,如下图:

先定义是否是最后一页的变量

	let isBottom = ref(false)

修改getWallListData方法,判断数据是否加载完毕,如果下面的公式成立,则证明没有下一页数据了:

queryParams.value.pageSize > res.data.length

	let wallList = ref([])const getWallListData =async ()=>{let res = await getWallList(queryParams.value)if(queryParams.value.pageSize>res.data.length) isBottom.value = truewallList.value = [...wallList.value,...res.data]}

修改onReachBottom事件处理函数如下:

	// 触底加载onReachBottom(()=>{if(isBottom.value)returnqueryParams.value.pageNum++getWallListData()})

同时在template模版中,在页面底部可以引入uniAPP的一个扩展组件uni-load-more ,根据isBottom 变量的状态来动态显示加载中还是没有更多。

	<view class="loadingLayout" v-if="wallList.length || isBottom"><uni-load-more :status="isBottom?'noMore':'loading'"></uni-load-more></view> 

如果isBottom为false,那么用户滑到底部则显示加载中

如果isBottom为true,那么用户滑到底部则显示没有更多了

二、实现下拉刷新

1.配置pages.json

pages.json配置文件中,为当前的classList页面单独开启下拉刷新效果:

		{"path" : "pages/classlist/classlist","style" : {"navigationBarTitleText" : "咸虾米壁纸分类列表","enablePullDownRefresh" : true,"onReachBottomDistance": 50}},
2.声明onPullDownRefresh事件处理函数

监听页面的onPullDownRefresh事件处理函数:

	// 下拉刷新	onPullDownRefresh(()=>{// 1. 重置关键数据wallList.value = []isBottom.value = falsequeryParams.value.pageNum=1getWallListData()})
3.修改getWallListData函数并调用结束刷新API

修改getWallListData函数,并通过uni.stopPullDownRefresh()结束刷新动态

	// 获取分类壁纸列表let wallList = ref([])const getWallListData =async ()=>{let res = await getWallList(queryParams.value)uni.stopPullDownRefresh()if(queryParams.value.pageSize>res.data.length)isBottom.value = truewallList.value = [...wallList.value,...res.data]}

  到此这篇关于vue3+uni-app框架实现上拉加载下拉刷新功能的文章就介绍到这了,更多相关Vue和uni-app的内容请关注本人以前的文章或继续浏览下面的文章,希望大家多多支持码喽的自我修养~💕

🚀 个人简介:某大型国企高级前端开发工程师,7年研发经验,信息系统项目管理师、CSDN优质创作者、阿里云专家博主,华为云云享专家,分享前端后端相关技术与工作常见问题~

💟 作    者:码喽的自我修养❣️
📝 专    栏:uniApp与微信小程序

🌈 若有帮助,还请 关注➕点赞➕收藏 ,不行的话我再努努力💪💪💪 

 更多专栏订阅推荐:

👍 前端工程搭建
💕 vue从基础到起飞

✈️ HTML5与CSS3

⭐️ JavaScript深入研究

📝 前端工作常见问题汇总

✍️ GIS地图与大数据可视化

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/3269935.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

Git 基础 GitHub【学习笔记】

一、Git 优势 大部分操作在本地完成&#xff0c;不需要联网完整性保证尽可能添加数据而不是删除或修改数据分支操作非常快捷流畅与 Linux 命令全面兼容 二、Git 程序安装 https://git-scm.com 三、Git 结构 #mermaid-svg-9Go6R1leWXWrDCqn {font-family:"trebuchet ms&quo…

全球耐辐射电机驱动器市场规模预测:未来六年年复合增长率CAGR为5.1%

据恒州诚思研究&#xff0c;2023年全球耐辐射电机驱动器市场规模大约为20亿元&#xff0c;预计未来六年年复合增长率CAGR为5.1%&#xff0c;到2030年市场规模将接近28亿元。这一增长反映了耐辐射电机驱动器在全球市场中的重要性及其在未来发展中的潜在机会。随着技术的进一步发…

探索 Electron:构建用户友好的登录页面流程

Electron是一个开源的桌面应用程序开发框架&#xff0c;它允许开发者使用Web技术&#xff08;如 HTML、CSS 和 JavaScript&#xff09;构建跨平台的桌面应用程序&#xff0c;它的出现极大地简化了桌面应用程序的开发流程&#xff0c;让更多的开发者能够利用已有的 Web 开发技能…

【北京迅为】《i.MX8MM嵌入式Linux开发指南》-第三篇 嵌入式Linux驱动开发篇-第五十九章 等待队列

i.MX8MM处理器采用了先进的14LPCFinFET工艺&#xff0c;提供更快的速度和更高的电源效率;四核Cortex-A53&#xff0c;单核Cortex-M4&#xff0c;多达五个内核 &#xff0c;主频高达1.8GHz&#xff0c;2G DDR4内存、8G EMMC存储。千兆工业级以太网、MIPI-DSI、USB HOST、WIFI/BT…

远程项目调试-informer2020

informer2020 Informer: Beyond Efficient Transformer for Long Sequence Time-Series Forecasting(原文&#xff09;Informer 是一个基于Transformer的模型&#xff0c;是为了应对长依赖关系而开发的。本文的主要主题是序列预测。序列预测可以在任何具有不断变化的数据的地方…

【STM32物联网】基于STM32+ESP8266+手机APP设计的智能密码锁源码原理图APP文档

实物图 1.摘要 设计了一种基于单片机的智能密码锁系统,提供了一种安全度高、智能化 便捷的门锁解决方案。系统由多个关键模块组成,包括 STM32 主控芯片、 RC522 射频 卡模块、指纹采集模块、矩阵按键、LCD 显示屏、 WiFi 模块和继电器等。这些模块发挥 着重要的功…

回溯的undo choice

重写N皇后和分割回文串,发现会想不明白path.remove(path.size() - 1)是在if里面还是if外面&#xff0c;问了GPT感觉很清楚 题目 N皇后 class Solution {List<List<Integer>> res new ArrayList<>();List<Integer> path new ArrayList<>();pu…

【北京迅为】《i.MX8MM嵌入式Linux开发指南》-第三篇 嵌入式Linux驱动开发篇-第四十八章 Platform 设备驱动

i.MX8MM处理器采用了先进的14LPCFinFET工艺&#xff0c;提供更快的速度和更高的电源效率;四核Cortex-A53&#xff0c;单核Cortex-M4&#xff0c;多达五个内核 &#xff0c;主频高达1.8GHz&#xff0c;2G DDR4内存、8G EMMC存储。千兆工业级以太网、MIPI-DSI、USB HOST、WIFI/BT…

微信小程序之调查问卷

一、设计思路 1、界面 调查问卷又称调查表&#xff0c;是以问题的形式系统地记载调查内容的一种形式。微信小程序制作的调查问卷&#xff0c;可以在短时间内快速收集反馈信息。具体效果如下所示&#xff1a; 2、思路 此调查问卷采用服务器客户端的方式进行设计&#xff0c;服…

【0300】Postgres内核之 INSERT INTO 原始解析树 转 Query 树 (2 - 1)

1. 前言 在【0298】Postgres内核之 INSERT INTO 原始解析树 转 Query 树 (2)一文中讲解过Postgres内核在通过RangeVar打开一个目标关系表时,在函数parserOpenTable()中,会注册parser错误位置报告回调函数。 同时也说明了这个注册过程的使用模式。 本文将继续讲解该使用模…

【Linux】-----工具篇(编译器gcc/g++,调试器gdb)

目录 一、gcc/g 简单认识 程序的翻译过程认识gcc 预处理(宏替换) 编译 汇编 链接 宏观认识 如何理解&#xff08;核心&#xff09; 什么是链接&#xff1f; 链接的分类 二、gdb 基本的认识 基本操作及指令 安装gdb 启动gdb ​编辑 显示源代码(list) 运行程序…

【云原生】Docker搭建知识库文档协作平台Confluence

目录 一、前言 二、企业级知识库文档工具部署形式 2.1 开源工具平台 2.1.1 开源工具优点 2.1.2 开源工具缺点 2.2 私有化部署 2.3 混合部署 三、如何选择合适的知识库平台工具 3.1 明确目标和需求 3.2 选择合适的知识库平台工具 四、Confluence介绍 4.2 confluence特…

动视发布长篇“论文”试图证明:没有SBMM 只有高手受益

SBMM——基于技能的比赛匹配系统&#xff0c;一直是《使命召唤》和广大 FPS 玩家所诟病的东西&#xff0c;但是《使命召唤》抱怨的玩家最多&#xff0c;因为似乎它所使用的匹配系统是让技术较好的玩家体验最糟糕的。 动视在此前一改对匹配系统避而不谈的态度后&#xff0c;日前…

鸿蒙开发——axios封装请求、拦截器

描述&#xff1a;接口用的是PHP&#xff0c;框架TP5 源码地址 链接&#xff1a;https://pan.quark.cn/s/a610610ca406 提取码&#xff1a;rbYX 请求登录 HttpUtil HttpApi 使用方法

Hadoop单机版环境搭建

一 . 案例信息 Hadoop 的安装部署的模式一共有三种&#xff1a; 本地模式&#xff0c;默认的模式&#xff0c;无需运行任何守护进程&#xff08; daemon &#xff09;&#xff0c;所有程序都在单个 JVM 上执行。由 于在本机模式下测试和调试 MapReduce 程序较为方便&#x…

Object Detection in 20 Years: A Survey 论文阅读

前言 如果要学习目标检测&#xff0c;那了解目标检测发展历程和各个技术将有助于更好地学习。所以今天我们看一篇来自IEEE的综述。 论文名&#xff1a;Object Detection in 20 Years: A Survey 论文作者&#xff1a;Zhengxia Zou et.al. 期刊/会议名&#xff1a;IEEE 发表时间…

日记审计遵守合规安全要求

一、什么是日志审计系统 日记审计系统是一种用于记录、监视和分析系统日志的工具或系统。它主要用于帮助组织实时监控与分析各种事件和行为的日志记录&#xff0c;以便检测潜在的安全威胁&#xff0c;了解系统性能和进行故障排除。日志审计系统通常能够收集、存储和分析来自各…

用Python做一个翻译软件,比上浏览器快100倍

简单的用Python来做一个翻译软件 开发环境 Python 3.10 Pycharm模块使用 requests -> pip install requests hashlib tkinter案例分为三部分: 1. 爬虫: 获取翻译接口, 请求获取翻译结果问题1: 接口抓包分析问题2: 请求需要写cookie问题3: 不同文本翻译, s加密参数2. 界面…

PHP多场地预定小程序系统源码

一键畅游多地&#xff01;多场地预定小程序的超实用指南 段落一&#xff1a;【开篇&#xff1a;告别繁琐&#xff0c;预订新体验】 &#x1f389;&#x1f680; 还在为多个活动或会议的场地预订而头疼不已吗&#xff1f;多场地预定小程序来拯救你啦&#xff01;它像是一位贴心…

[Windows CMD] 检测网络连通性 ping

ping 是一个非常常用的网络工具&#xff0c;用于测试网络连接的可达性和测量网络延迟。它通过发送 ICMP (Internet Control Message Protocol) Echo Request 数据包到目标主机&#xff0c;并等待接收回显应答 (Echo Reply) 来工作。ping 命令可以帮助您快速检测网络问题&#x…