uniapp上拉刷新下拉加载

 方法一:

z-paging 的组件库:

show-loading-more-no-more-view="false"
  • 该属性控制是否显示 "加载更多" 或 "没有更多" 的提示。如果设为 false,则不会显示这些提示。如果设为 true,当数据加载完毕后会显示 "没有更多" 的提示。
  • 默认情况下,分页组件会显示这两个状态,你可以根据需求设置为 false
fixed="true"
  • 该属性用于设置分页组件是否固定在页面的底部。如果设为 true,分页组件会固定在页面底部,不会随着页面滚动而移动。
@onRefresh="onRefresh"
  • 这是 z-paging 提供的事件,表示触发了刷新操作。当用户下拉刷新时,会触发 onRefresh 方法。
  • 在 onRefresh 方法中,你通常需要重置数据并重新加载数据列表。

安装:npm install z-paging

 

<template><view class="home-page"><z-paging ref="paging" v-model="dataList" :show-loading-more-no-more-view="false" :fixed="true"@onRefresh="onRefresh" bg-color="#ffffff" @query="queryList"><view class="top-box" slot="top"><custom :mode="1" title=" " background="transparent" :hiddenBtn="true"></custom></view><view class="list-box"><!-- 上拉刷新下拉加载的数据 --><list-item v-for="(item, index) in dataList" :key="index" :info="item"></list-item></view><qq-footer slot="empty" :show="true" :emptyText="'暂无数据'"></qq-footer></z-paging></view>
</template>
<script>export default {name: 'homepage',data() {return {dataList: [],};},onShow() {this.$store.dispatch('refresh')},methods: {onRefresh() {// 告知z-paging下拉刷新结束,这样才可以开始下一次的下拉刷新setTimeout(() => {// 1.5秒之后停止刷新动画// this.$refs.paging.complete();// this.$refs.paging.reload()}, 1500)},queryList(pageNumber, pageSize) {this.request({url: '/url/url',method: 'get',data: {pageNumber,pageSize}}).then(res => {if (res.status === 200) {this.$refs.paging.complete(res.data);}}).catch(err => {this.$refs.paging.complete(false);})},}}
</script>

  方法二:

<template><view><indexNoteList :is_null="is_null" :addEventHandel="false" @refreshNoteList="refreshNoteList" showIsOpen:list="noteList"></indexNoteList></view>
</template>
<script>import NOTE from "@/utils/note.js";export default {data() {return {is_null: false,// 是否没有更多数据noteList: [],page: 1,pageSize: 10,}},onLoad() {this.getNoteListnew(this.page); //动态列表},//上拉触底onReachBottom() {this.getNoteListnew(this.page);},//监听用户下拉刷新onPullDownRefresh() {setTimeout(() => {uni.stopPullDownRefresh();}, 200);this.init();},methods: {init() {this.setData({page: 1,// 重置为第一页noteList: [],// 清空列表is_null: false,// 重置没有更多数据的状态})this.getNoteListnew();// 重新加载数据},getNoteListnew(page = 1) {if (this.is_null) return // 如果没有更多数据,就停止请求if (page !== 1 && this.is_null == true) return;// 如果不是第一页且没有更多数据,则停止请求let formData = {pageNumber: page,pageSize: this.pageSize,}this.request({url: '/url/url',data: formData,method: 'get'}).then(res => {if (!this.rsuccess(res)) return;let arr = NOTE.filter(res.data, page == 1 ? [] : this.noteList); // 过滤数据arr = NOTE.handelList(arr);// 处理数据// 如果是第一页,直接替换数据;否则,追加数据if (page == 1) {this.noteList = arr;} else {this.noteList = this.noteList.concat(arr);}// 判断是否还有更多数据if (arr.length < this.pageSize) {this.is_null = true;} else {this.is_null = false;}this.page = page + 1; // 更新当前页码});},}}
</script>

@/utils/note.js

	//处理图片,时间等export function handelList(arr = []) {arr.forEach(v => {v = handelNote(v);})return arr;}//查重export function filter(arr = [], oldArr = []) {let ids = oldArr.map(v => v.id);return arr.filter(v => !ids.includes(v.id));}//处理单条数据export function handelNote(info) {//处理图片if (String(info.noteImg).trim()) {info.noteImg = String(info.noteImg).trim().split(',').filter(v => v);} else {info.noteImg = [];}if (String(info.tranNoteImgUrl).trim()) {info.tranNoteImgUrl = String(info.tranNoteImgUrl).trim().split(',').filter(v => v);} else {info.tranNoteImgUrl = [];}//处理时间if (!info.createTime) {info.time = '未知';} else {info.time = getTimeStr(info.createTime);}return info;}//处理时间export function getTimeStr(t) {let NewTime = new Date().getTime();if (NewTime - t < 1000 * 60 * 2) {return '刚刚';}if (NewTime - t < 1000 * 60 * 6) {return `${parseInt((NewTime-t)/60000)}分钟前`;}return dateFormat('mm-dd HH:MM', new Date(t));}//更新dom数组export function refreshNoteList(E, page) {if (E.type == 'update') {page.noteList.some((v, i) => {if (v.id == E.info.id) {page.$set(page.noteList, i, JSON.parse(JSON.stringify(E.info)));return true;}return false;});return;}if (E.type == 'delete') {page.noteList.some((v, i) => {if (v.id == E.info.id) {page.noteList.splice(i, 1);return true;}return false;});}if (E.type == 'add') {page.noteList.unshift(E.info);}}export function dateFormat(fmt, date) {let ret;let opt = {"Y+": date.getFullYear().toString(), // 年"m+": (date.getMonth() + 1).toString(), // 月"d+": date.getDate().toString(), // 日"H+": date.getHours().toString(), // 时"M+": date.getMinutes().toString(), // 分"S+": date.getSeconds().toString() // 秒// 有其他格式化字符需求可以继续添加,必须转化成字符串};for (let k in opt) {ret = new RegExp("(" + k + ")").exec(fmt);if (ret) {fmt = fmt.replace(ret[1], (ret[1].length == 1) ? (opt[k]) : (opt[k].padStart(ret[1].length,"0")))};};return fmt;}export function getFormatText(v, unit = '万') {if (!v) v = 0;v = Number(v);if (v < 10000) {return v;}return `${Number(Number(v / 10000).toFixed(1))}${unit}`;}export default {handelList,filter,handelNote,refreshNoteList,}

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

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

相关文章

Java I/O(输入/输出)——针对实习面试

目录 Java I/O&#xff08;输入/输出&#xff09;什么是Java I/O流&#xff1f;字节流和字符流有什么区别&#xff1f;什么是缓冲流&#xff1f;为什么要使用缓冲流&#xff1f;Java I/O中的设计模式有哪些&#xff1f;什么是BIO&#xff1f;什么是NIO&#xff1f;什么是AIO&am…

AJAX 全面教程:从基础到高级

AJAX 全面教程&#xff1a;从基础到高级 目录 什么是 AJAXAJAX 的工作原理AJAX 的主要对象AJAX 的基本用法AJAX 与 JSONAJAX 的高级用法AJAX 的错误处理AJAX 的性能优化AJAX 的安全性AJAX 的应用场景总结与展望 什么是 AJAX AJAX&#xff08;Asynchronous JavaScript and XML…

本地保存mysql凭据实现免密登录mysql

本地保存mysql凭据 mysql加密登录文件简介加密保存mysql用户的密码到本地凭据 mysql加密登录文件简介 要在 mysql客户端 上连接 MySQL 而无需在命令提示符上输入用户名和口令&#xff0c;下列三个位置可用于存储用户的mysql 凭证来满足此要求。 配置文件my.cnf或my.ini /etc…

图形几何之美系列:仿射变换矩阵(二)

“ 在几何计算、图形渲染、动画、游戏开发等领域&#xff0c;常需要进行元素的平移、旋转、缩放等操作&#xff0c;一种广泛应用且简便的方法是使用仿射变换进行处理。相关的概念还有欧拉角、四元数等&#xff0c;四元数在图形学中主要用于解决旋转问题&#xff0c;特别是在三维…

Jmeter的安装,设置中文,解决乱码问题

1.Jmeter安装 1-Jmeter如何下载 1---我这里提供一个下载快的方式 https://www.123684.com/s/lWZKVv-4jiav?提取码:4x4y 2---Jmeter官网下载地址 Apache JMeter - Download Apache JMeter 2-配置java环境 1---下载javaJDK 官方下载地址 https://www.oracle.com/java/techno…

【Uniapp】Uniapp Android原生插件开发指北

前言 在uniapp开发中当HBuilderX中提供的能力无法满足App功能需求&#xff0c;需要通过使用Andorid/iOS原生开发实现时&#xff0c;或者是第三方公司提供的是Android的库&#xff0c;这时候可使用App离线SDK开发原生插件来扩展原生能力。 插件类型有两种&#xff0c;Module模…

微信小程序——用户隐私保护指引填写(详细版)

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏…

reg注册表研究与物理Hack

reg注册表研究与物理Hack 声明&#xff1a;内容的只是方便各位师傅学习知识&#xff0c;以下网站只涉及学习内容&#xff0c;其他的都与本人无关&#xff0c;切莫逾越法律红线&#xff0c;否则后果自负。 目录 reg注册表研究与物理HackWindows注册表修改注册表实现应用程序开机…

[论文粗读][REALM: Retrieval-Augmented Language Model Pre-Training

引言 今天带来一篇检索增强语言模型预训练论文笔记——REALM: Retrieval-Augmented Language Model Pre-Training。这篇论文是在RAG论文出现之前发表的。 为了简单&#xff0c;下文中以翻译的口吻记录&#xff0c;比如替换"作者"为"我们"。 语言模型预训练…

深入浅出WebSocket(实践聊天室demo)

文章目录 什么是WebSocket?WebSocket连接过程WebSocket与Http的区别重连机制完整代码使用方法心跳机制实现聊天室demo(基于Socket.io)参考文章、视频小广告~什么是WebSocket? WebSocket 是一种在单个TCP连接上进行全双工通信的协议(计算机网络应用层的协议) 在 WebSocket A…

RabbitMQ队列详细属性(重要)

RabbitMQ队列详细属性 1、队列的属性介绍1.1、Type&#xff1a;队列类型1.2、Name&#xff1a;队列名称1.3、Durability&#xff1a;声明队列是否持久化1.4、Auto delete&#xff1a; 是否自动删除1.5、Exclusive&#xff1a;1.6、Arguments&#xff1a;队列的其他属性&#xf…

springboot029基于springboot的网上购物商城系统

&#x1f345;点赞收藏关注 → 添加文档最下方联系方式领取本源代码、数据库&#x1f345; 本人在Java毕业设计领域有多年的经验&#xff0c;陆续会更新更多优质的Java实战项目希望你能有所收获&#xff0c;少走一些弯路。&#x1f345;关注我不迷路&#x1f345; 项目视频 基于…

【大数据学习 | HBASE】habse的表结构

在使用的时候hbase就是一个普通的表&#xff0c;但是hbase是一个列式存储的表结构&#xff0c;与我们常用的mysql等关系型数据库的存储方式不同&#xff0c;mysql中的所有列的数据是按照行级别进行存储的&#xff0c;查询数据要整个一行查询出来&#xff0c;不想要的字段也需要…

二手交易平台测试用例设计和执行

&#x1f384;欢迎来到边境矢梦的csdn博文&#x1f384; &#x1f384;追求开源思想和学无止境思想一直在提升技术的路上 &#x1f384; &#x1f308;涉及的领域有&#xff1a;Java、Python、微服务架构和分布式架构思想、基本算法编程&#x1f308; &#x1f386;喜欢的朋友可…

SpringBoot框架的简介及实现步骤

一&#xff0c;SpringBoot简介: Spring Boot 是一个由 Pivotal 团队开发的开源框架&#xff0c;它基于 Spring 框架&#xff0c;旨在简化新 Spring 应用的初始搭建以及开发过程。Spring Boot 提供了多种特性来帮助开发者快速地创建独立的、生产级别的基于 Spring 的应用。 在…

七大AI知识库工具概览

在数字化转型的浪潮中&#xff0c;企业越来越注重知识管理的重要性。以下是七款各具特色的AI知识库工具&#xff0c;它们通过智能化手段助力企业在知识管理、团队协作及客户服务等方面取得显著成效。 HelpLook AI知识库 概述&#xff1a;作为一款SaaS软件&#xff0c;HelpLook…

26.校园快递物流管理系统(基于SSM和Vue的Java项目)

目录 1.系统的受众说明 2.相关技术 2.1 JAVA简介 2.2 SSM三大框架 2.3 MyEclipse开发环境 2.4 Tomcat服务器 2.5 MySQL数据库 2.6访问数据库实现方法 3. 系统分析 3.1 需求分析 3.2 系统可行性分析 3.2.1技术可行性&#xff1a;技术背景 3.2.2经济可行性…

数据编排与ETL有什么关系?

数据编排作为近期比较有热度的一个话题&#xff0c;讨论度比较高&#xff0c;同时数据编排的出现也暗示着数字化进程的自动化发展。在谈及数据编排时&#xff0c;通常也会谈到ETL&#xff0c;这两个东西有相似点也有不同点。 数据编排和ETL&#xff08;提取、转换、加载&#x…

CSS教程(二)- CSS选择器

1. 作用 匹配文档中的某些元素为其应用样式。根据不同需求把不同的标签选出来。 2. 分类 分类 基础选择器 包含 标签选择器、ID选择器、类选择器、通用选择器等 复合选择器 包含 后代选择器、子代选择器、伪类选择器等 1 标签选择器 介绍 又称为元素选择器&#xff0c;根…

材质(二)——材质参数化,从源材质继承生成不同的材质实例

继承原材质&#xff0c;对外提供参数。 更改调制不同的参数&#xff0c;生成不同的材质实例。 类似于&#xff0c;类的继承。有一个基类Base.继承生成为子类 A_Base,B_Base,C_Base