uniapp中使用Mescroll实现下拉刷新与上拉加载项目实战

如何在UniApp中使用Mescroll实现下拉刷新与上拉加载

前言

下拉刷新和上拉加载更多成为了提升用户体验不可或缺的功能。UniApp作为一个跨平台的应用开发框架,支持使用Vue.js语法编写多端(iOSAndroidH5等)应用。Mescroll作为一款专为Vue设计的滚动插件,可以很好地满足我们在UniApp项目中的需求。
使用【wxs+renderjs实现】高性能的下拉刷新上拉加载组件。
支持uni-app的下拉刷新和上拉加载的组件,支持原生页面和局部区域滚动。

Mescroll 使用

mescroll 官网
组件案例

步骤一、打开HbuilderX插件市场 下载插件,并选择一个项目导入

如何在UniApp中使用Mescroll实现下拉刷新与上拉加载项目实战
如何在UniApp中使用Mescroll实现下拉刷新与上拉加载项目实战
如何在UniApp中使用Mescroll实现下拉刷新与上拉加载项目实战
具体目录结构:
如何在UniApp中使用Mescroll实现下拉刷新与上拉加载项目实战

步骤二、在main.js注册全局组件, 方便省去具体页面中引入和注册mescroll组件的代码

如何在UniApp中使用Mescroll实现下拉刷新与上拉加载项目实战

步骤三、在index.vue页面中使用 <mescroll-body> 组件将需要下拉上拉的块包裹起来,如下代码
<template><view class="content"><!-- 搜索框在小程序中显示 --><!-- #ifdef MP --><search-input @click.native="navTo('/pages/search/search')"></search-input><!-- #endif --><!-- 轮播图 --><banner :bannerList="bannerList"></banner><mescroll-body ref="mescrollRef" @init="mescrollInit" @down="downCallback" @up="upCallback" :down="downOption"><!-- 分类区域 --><category-box :categoryList="categoryList"></category-box><!-- 热门推荐 --><view class="list-container"><swiper-course name="热门推荐" word="HOT" :courseData="hotCourseList"></swiper-course><scroll-course name="近期上新" word="NEW" :courseData="newCourseList"></scroll-course><swiper-course name="免费精选" word="FREE" :courseData="freeCourseList"></swiper-course><!-- 付费精品 --><list-course name="付费精品" word="NICE" :courseData="payCourseList"></list-course></view></mescroll-body></view>
</template>

如何在UniApp中使用Mescroll实现下拉刷新与上拉加载项目实战
模板属性解释:
mescroll-body: 这是Mescroll的核心组件,用于包裹需要实现下拉刷新和上拉加载功能的内容。
ref="mescrollRef": 通过ref引用,可以在脚本中访问Mescroll实例。
@init="mescrollInit": 当Mescroll初始化完成时,触发mescrollInit方法。
@down="downCallback": 当用户下拉时,触发downCallback方法。
@up="upCallback": 当用户上拉时,触发upCallback方法。
:down="downOption": 绑定下拉刷新的配置选项。

步骤四、导入相关模块,引入 mescroll-mixins.js,并使用mixin
import MescrollMixin from "@/uni_modules/mescroll-uni/components/mescroll-uni/mescroll-mixins.js"
export default {mixins: [MescrollMixin]
}
步骤五、下拉刷新的配置选项,offset表示下拉多少距离后开始刷新。
data() {return {downOption: { // 3. 下拉刷新offset: 50, // 下拉高度多少,开始刷新}}
},
步骤六、设置上拉下拉函数

upCallback 方法既用于处理上拉加载更多,也用于处理下拉刷新的情况
下拉刷新的处理:当用户下拉页面时,Mescroll 会触发 downCallback 方法。在这个方法中,我们调用了 upCallback 方法,并传入了 { num: 1, size: 10 } 作为参数。这样做的目的是为了在下拉刷新时重新加载第一页的数据。
上拉加载的处理:当用户上拉页面时,Mescroll 会触发 upCallback 方法。这个方法会根据传入的 page 参数来决定加载哪一页的数据。

代码如下:

// 下拉上拉
async upCallback(page) {if (page.num === 1) {// this.loadBannerData()this.loadCateData()this.loadHotCourseData()this.loadNewCourseData()this.loadFreeCourseData()// this.loadPayCourseData()}//付费精品,带分页功能,isFree:0收费,1免费const {data} = await api.getList({isFree: 1}, page.num, page.isze)const curList = data.records// 如果第一页需要手动设置空列表if (page.num == 1) this.payCourseList = [];// 追加新数据this.payCourseList = this.payCourseList.concat(curList)// 请求成功, 隐藏加载状态,判断是否数据全部加载完(后台接口有返回列表的总数据量total)this.mescroll.endBySize(curList.length, data.total)
},
关键逻辑:

page.num === 1:如果当前页码是1,说明这是第一次加载数据,通常在下拉刷新时会触发。在这种情况下,我们加载分类、热门推荐、最近上新和免费精选的数据。
page.num > 1:如果当前页码大于1,说明这是上拉加载更多数据。在这种情况下,我们只加载付费精品的数据。

详细步骤:

下拉刷新:
用户下拉页面,触发 downCallbackdownCallback 调用 upCallback,传入 { num: 1,> size: 10 }upCallback 根据 page.num === 1, 加载第一页的数据,包括分类、热门推荐、最近上新和免费精选的数据。 加载完成后,调用this.mescroll.endBySize(curList.length, data.total) 结束加载状态。
上拉加载:
用户上拉页面,触发 upCallbackupCallback 根据 page.numpage.size, 加载相应页码的数据,通常是付费精品的数据。 加载完成后,调用 this.mescroll.endBySize(curList.length,data.total) 结束加载状态。

通过这种方式,我们可以用一个 upCallback 方法同时处理下拉刷新和上拉加载的逻辑,从而简化代码结构,提高代码的可维护性和复用性。

效果:

如何在UniApp中使用Mescroll实现下拉刷新与上拉加载项目实战

如何在UniApp中使用Mescroll实现下拉刷新与上拉加载项目实战
如何在UniApp中使用Mescroll实现下拉刷新与上拉加载项目实战

如何在UniApp中使用Mescroll实现下拉刷新与上拉加载项目实战

完结~

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

js:基础

js是什么 JavaScript是一种运行在客户端的编程语言&#xff0c;实现人机交互的效果 js只要有个浏览器就能跑 js可以做网页特效、表单验证、数据交互、服务端编程 服务端编程是前端人拿他们特有的后端语言node.js来干后端干的事情 js怎么组成 JavaScriptECMAScript(语言基…

Cannot find a valid baseurl for repo: centos-sclo-rh/x86_64

yum install 报错: Cannot find a valid baseurl for repo: centos-sclo-rh/x86_64 CentOS7的SCL源在2024年6月30日停止维护了。 当scl源里面默认使用了centos官方的地址&#xff0c;无法连接&#xff0c;需要替换为阿里云。 cd /etc/yum.repos.d/ 找到 CentOS-SCLo-scl.repo 和…

35 基于单片机的精确电压表DA-AD转换

目录 一、主要功能 二、硬件资源 三、程序编程 四、实现现象 一、主要功能 基于51单片机&#xff0c;采用DAC0832和ADC0832检测电压&#xff0c;0到8.5V&#xff0c;设计复位电路 LED管显示实际稳压值&#xff0c;初始电压0 二、硬件资源 基于KEIL5编写C代码&#xff0c…

微信小程序2-地图显示和地图标记

一、index修改页面&#xff0c;让页面能够显示地图和一个添加标记的按钮。 index.wxml <scroll-view class"scrollarea" scroll-y type"list"><view class"index_container"><map id"map" style"width: 100%; h…

【一篇搞定配置】网络分析工具WireShark的安装与入门使用

&#x1f308; 个人主页&#xff1a;十二月的猫-CSDN博客 &#x1f525; 系列专栏&#xff1a; &#x1f3c0;各种软件安装与配置_十二月的猫的博客-CSDN博客 &#x1f4aa;&#x1f3fb; 十二月的寒冬阻挡不了春天的脚步&#xff0c;十二点的黑夜遮蔽不住黎明的曙光 目录 1.…

Python基础学习-11函数参数

1、"值传递” 和“引用传递” 1&#xff09;不可变的参数通过“值传递”。比如整数、字符串等 2&#xff09;可变的参数通过“引用参数”。比如列表、字典。 3&#xff09;避免可变参数的修改 4&#xff09;内存模型简介 2、函数参数类型 1&#xff09; def func() #无参…

深入理解注意力机制(Attention Mechanism)

在深度学习中&#xff0c;“注意力机制&#xff08;Attention Mechanism&#xff09;”是近年来的一个重要突破。它最初被提出用于处理自然语言处理&#xff08;NLP&#xff09;任务&#xff0c;但如今已经广泛应用于计算机视觉、强化学习和其他领域。注意力机制赋予模型一种“…

linux-FTP服务器配置

FTP&#xff08;File Transfer Protocol&#xff0c;文件传输协议&#xff09; 一种用于在计算机网络中传输文件的标准协议。它允许用户通过客户端程序与远程服务器进行文件交换&#xff0c;支持文件的上传、下载、删除、重命名等操作。FTP服务常用于将网站文件上传到服务器&am…

蓝网科技临床浏览系统存在SQL注入漏洞

漏洞描述 蓝网科技临床浏览系统是一个专门用于医疗行业的软件系统&#xff0c;主要用于医生、护士和其他医疗专业人员在临床工作中进行信息浏览、查询和管理。在deleteStudy.php中的接口处存在SQL注入漏洞&#xff0c;未经身份验证的恶意攻击者利用 SQL 注入漏洞获取数据库中的…

QML学习 —— 32、自定义侧边滑动菜单(附源码)

效果 说明 侧滑菜单是应用中常见的从侧边划出菜单的效果。以滑动的方式从屏幕的左侧或右侧展开,为用户提供额外的导航选项或功能入口。侧边菜单的设计可以将应用的主要功能和内容以清晰的结构展示给用户,提升用户在使用应用时的便捷性和直观性。 代码 import QtQuick 2.12 i…

vue3项目部署在阿里云轻量应用服务器上

文章目录 概要整体部署流程技术细节小结 概要 vue3前端项目部署在阿里云轻量服务器 整体部署流程 首先有一个Vue3前端项目和阿里云应用服务器 确保环境准备 如果是新的服务器&#xff0c;在服务器内运行以下命令更新软件包 sudo apt update && sudo apt upgrade -y …

macos 14.0 Monoma 修改顶部菜单栏颜色

macos 14.0 设置暗色后顶部菜单栏还维持浅色&#xff0c;与整体不协调。 修改方式如下&#xff1a;

Redis设计与实现 学习笔记 第二十章 Lua脚本

Redis从2.6版本引入对Lua脚本的支持&#xff0c;通过在服务器中嵌入Lua环境&#xff0c;Redis客户端可以使用Lua脚本&#xff0c;直接在服务器端原子地执行多个Redis命令。 其中EVAL命令可以直接对输入的脚本进行求值&#xff1a; 而使用EVALSHA命令则可以根据脚本的SHA1校验…

关于相机选型的一些参数说明

上一篇&#xff1a;关于相机的一些参数计算&#xff08;靶面、视野等&#xff09; 目录 1.卷帘快门和全局快门1.1 卷帘快门1.2 全局快门PS&#xff1a;视觉伺服与快门选择 2.黑白和彩色3.CCD和CMOS3.1 CCD3.2 CMOSCCD VS CMOS 4.面阵和线扫4.1 面阵4.2 线扫4.3 面阵 VS 线扫 5.…

ubuntu设置程序开机自启动

文章目录 1、概述2、图形界面设置3、设置为Systemd服务 1、概述 测试环境&#xff1a;ubuntu22.04 带图形界面 实现方式1&#xff1a;通过图形界面的【启动应用程序】设置开机自启动&#xff1b; 实现方式2&#xff1a;通过配置为服务实现开机自启动。 2、图形界面设置 优点&am…

4.STM32之通信接口《精讲》之IIC通信---软件实现IIC《深入浅出》面试必备!

接下正式&#xff0c;进入软件编写IIC时序了&#xff0c;并实现对MPU6050的控制&#xff0c;既然是软件实现&#xff0c;那么硬件方面&#xff0c;我仅需两根控制线即可&#xff0c;即&#xff1a;数据控制线SDA&#xff0c;时钟控制线SCL。&#xff08;人为软件层面定义的&…

使用mingw+CMake在Windows平台编译OpenCV

1. 安装mingw和cmake cmake的安装比较简单&#xff0c;百度一下完成相关操作即可&#xff0c;笔者安装的是3.24.3版本。 Mingw的安装也有很多相关文章&#xff0c;不过我使用的是安装QT时附带安装的mingw&#xff0c;其路径为D:\software\Qt\Tools\mingw1120_64。其中的bin文件…

2024APMCM亚太杯数学建模C题【宠物行业】原创论文分享

大家好呀&#xff0c;从发布赛题一直到现在&#xff0c;总算完成了2024 年APMCM亚太地区大学生数学建模竞赛C题的成品论文。 给大家看一下目录吧&#xff1a; 目录 摘 要&#xff1a; 10 一、问题重述 14 二&#xff0e;问题分析 15 2.1问题一 15 2.2问题二 15 2.3问题三…

win10中使用ffmpeg和MediaMTX 推流rtsp视频

在win10上测试下ffmpeg推流rtsp视频&#xff0c;需要同时用到流媒体服务器MediaMTX 。ffmpeg推流到流媒体服务器MediaMTX &#xff0c;其他客户端从流媒体服务器拉流。 步骤如下&#xff1a; 1 下载MediaMTX github: Release v1.9.3 bluenviron/mediamtx GitHub​​​​​…

海康面阵、线阵、读码器及3D相机接线说明

为帮助用户快速了解和配置海康系列设备的接线方式&#xff0c;本文将针对海康面阵相机、线阵相机、读码器和3D相机的主要接口及接线方法进行全面整理和说明。 一、海康面阵相机接线说明 海康面阵相机使用6-pin P7接口&#xff0c;其功能设计包括电源输入、光耦隔离信号输入输出…