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,}
相关文章:

uniapp上拉刷新下拉加载
方法一: z-paging 的组件库: show-loading-more-no-more-view"false" 该属性控制是否显示 "加载更多" 或 "没有更多" 的提示。如果设为 false,则不会显示这些提示。如果设为 true,当数据加载完毕…...
【C++】【算法基础】快速排序
快速排序 题目 用快速排序排序长度为 n n n的整数数列。 题解 快速排序的核心思想是分而治之:选定一个基准值,将数组分为两半,一边比其小,一边比其大,然后再次分别选定一个基准值,再次操作。 #include…...
数仓工具—Hive语法之窗口函数中的order by
窗口函数中的order by 其实工作这么多年了,再加上写了这么多的文章,我觉得我还是很理解窗口函数这个东西了,毕竟在工作中用了这么多,各种row_number 排序求分组前几,各种lead/lag 代替自关联实现感觉已经得心应手了。 但是最近遇到窗口函数中的order by 的问题,然后我发…...
以旅游产品为例改写一篇系统架构风格的论文
概念: 系统架构风格是描述某一特定应用领域中系统组织方式的惯用模式,架构风格定义了一个词汇表和一组约束,词汇表中包含一些构件和连接件类型,而这组约束指出系统是如何将这些构件和连接件组合起来的,软件系统架构风格反应了领域中众多软件系统所共有的结构和语义特性,…...

【Linux】linux编辑器-vim的命令及配置
📢博客主页:https://blog.csdn.net/2301_779549673 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! 📢本文由 JohnKi 原创,首发于 CSDN🙉 📢未来很长&#…...
解决vite项目tailwindcss不生效!!(Vue3、tailwindcss失效)
安装tailwindcss vite自带安装了postcss,只需要安装tailwindcss npm install -D tailwindcss自动创建tailwind.config.js npx tailwindcss init -p/** type {import(tailwindcss).Config} */ module.exports {// 配置需要使用tailwindcss的文件content: [./src/vi…...

ubuntu 20.04 NVIDIA驱动、cuda、cuDNN安装
1. NVIDIA驱动 系统设置->软件和更新->附加驱动->选择NVIDIA驱动->应用更改。该界面会自动根据电脑上的GPU显示推荐的NVIDIA显卡驱动。 运行nvidia-smi: NVIDIA-SMI has failed because it couldnt communicate with the NVIDIA driver. Make sure that the lat…...
Python世界:力扣题704二分查找
Python世界:力扣题704二分查找 任务背景思路分析代码实现测试套件本文小结 任务背景 问题来自力扣题目704:Binary Search,大意如下: Given an array of integers nums which is sorted in ascending order, and an integer target…...

W55RP20-EVB-Pico评估板介绍
目录 1 简介 2 硬件资源 2.1 硬件规格 2.2 引脚定义 2.3 工作条件 3 参考资料 3.1 RP2040 数据手册 3.2 原理图 编辑 原理图 & 物料清单 & Gerber 文件 3.3 尺寸图(单位:mm) 编辑 3.4 认证 3.5 参考例程 4 硬件协…...

Flink安装和Flink CDC实现数据同步
一,Flink 和Flink CDC 1, Flink Apache Flink是一个框架和分布式处理引擎,用于对无界和有界数据流进行有状态计算。 中文文档 Apache Flink Documentation | Apache Flink 官方文档 :https://flink.apache.org Flink 中文社区…...

数字化转型助手 快鲸SCRM系统为企业营销赋能
内容概要 在当今这个快速变化的商业环境中,数字化转型已经成为企业生存与发展的关键要素。无论是零售、制造还是服务行业,企业都深刻意识到传统工作模式的局限性,必须借助先进的技术来优化运营和提升客户体验。快鲸SCRM系统就是这样一款数字…...

浅谈Agent
目录 什么是大模型 Agent ? 大模型Agent 有哪些部分组成? 规划(Planning) Planning类型 不依赖反馈的计划 基于反馈的计划 拆解子目标和任务分解方法 COT TOT GOT LLMP 反思和完善 ReAct(融合推理与执行的能力) Reflexion(动态…...

绿色能源发展关键:优化风电运维体系
根据QYResearch调研团队最新发布的《全球风电运维市场报告2023-2029》显示,预计到2029年,全球风电运维市场的规模将攀升至307.8亿美元,并且在接下来的几年里,其年复合增长率(CAGR)将达到12.5%。 上述图表及…...
Sparrow系列拓展篇:对调度层进行抽象并引入IPC机制信号量
前言 在笔者更新完Sparrow手把手教学系列后,原本是不打算继续更新的。但关于Sparrow系列的读者又渐渐增多,作为作者,总感觉这个系列的文章还是稍微有些不圆满,恐怕多少会让读者有些意兴阑珊。 最近又恰好有一点空闲时间…...

天塌了!!!SQL竟也可以做预测分析?| 商品零售额的预测
目录 0 问题背景 1 数据准备 2 问题解决 2.1 模型构建 (1)符号规定 (2)基本假设 (3)模型的分析与建立 2.2 模型求解 3 小结 0 问题背景 1960年—1985年全国社会商品零售额如图1 所示 表1全国社…...

VSCode本地C/C++环境配置
基本环境下载 1.我的系统是windows,自己先下载安装VSCode,网上视频实在太多,我建议跟着B站视频操作。 2.下载安装好后你需要明白:VSCode只是一个编辑工具,我们要写C/C代码得编译运行,所以我们要配置它在w…...

【智能算法应用】淘金优化算法求解二维路径规划问题
摘要 本文基于智能算法的淘金优化算法(Gold Panning Optimization, GPO)求解二维路径规划问题。该算法模拟淘金过程中个体寻找最优金矿路径的行为,利用适应度函数优化路径规划,能够在复杂环境下实现从起点到目标点的最优路径搜索…...

Linux挖矿病毒(kswapd0进程使cpu爆满)
一、摘要 事情起因:有台测试服务器很久没用了,突然监控到CPU飙到了95以上,并且阿里云服务器厂商还发送了通知消息,【阿里云】尊敬的xxh: 经检测您的阿里云服务(ECS实例)i-xxx存在挖矿活动。因此很明确服务器中挖矿病毒…...
【java】ArrayList与LinkedList的区别
目录 1. 说明2. 内部实现2.1 ArrayList2.2 LinkedList 3. 性能特点3.1 插入和删除操作3.2 访问操作3.1 遍历操作 4. 使用场景5. 扩容机制6. 空间开销 1. 说明 1.Java中的ArrayList和LinkedList是两种常用的集合实现类,都属于Java集合框架的一部分,但它们…...

【LangChain系列6】【Agent模块详解】
目录 前言一、LangChain1-1、介绍1-2、LangChain抽象出来的核心模块1-3、特点1-4、langchain解决的一些行业痛点1-5、安装 二、Agent模块详解2-0、Agent核心思想——React介绍2-0-1、React的介绍以及由来2-0-2、伪代码介绍React的执行顺序 2-1、Agent介绍2-1、Self ask with se…...
椭圆曲线密码学(ECC)
一、ECC算法概述 椭圆曲线密码学(Elliptic Curve Cryptography)是基于椭圆曲线数学理论的公钥密码系统,由Neal Koblitz和Victor Miller在1985年独立提出。相比RSA,ECC在相同安全强度下密钥更短(256位ECC ≈ 3072位RSA…...

K8S认证|CKS题库+答案| 11. AppArmor
目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作: 1)、切换集群 2)、切换节点 3)、切换到 apparmor 的目录 4)、执行 apparmor 策略模块 5)、修改 pod 文件 6)、…...
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...

React19源码系列之 事件插件系统
事件类别 事件类型 定义 文档 Event Event 接口表示在 EventTarget 上出现的事件。 Event - Web API | MDN UIEvent UIEvent 接口表示简单的用户界面事件。 UIEvent - Web API | MDN KeyboardEvent KeyboardEvent 对象描述了用户与键盘的交互。 KeyboardEvent - Web…...

CocosCreator 之 JavaScript/TypeScript和Java的相互交互
引擎版本: 3.8.1 语言: JavaScript/TypeScript、C、Java 环境:Window 参考:Java原生反射机制 您好,我是鹤九日! 回顾 在上篇文章中:CocosCreator Android项目接入UnityAds 广告SDK。 我们简单讲…...
Linux云原生安全:零信任架构与机密计算
Linux云原生安全:零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言:云原生安全的范式革命 随着云原生技术的普及,安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测,到2025年,零信任架构将成为超…...
AI编程--插件对比分析:CodeRider、GitHub Copilot及其他
AI编程插件对比分析:CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展,AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者,分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...
根据万维钢·精英日课6的内容,使用AI(2025)可以参考以下方法:
根据万维钢精英日课6的内容,使用AI(2025)可以参考以下方法: 四个洞见 模型已经比人聪明:以ChatGPT o3为代表的AI非常强大,能运用高级理论解释道理、引用最新学术论文,生成对顶尖科学家都有用的…...

SiFli 52把Imagie图片,Font字体资源放在指定位置,编译成指定img.bin和font.bin的问题
分区配置 (ptab.json) img 属性介绍: img 属性指定分区存放的 image 名称,指定的 image 名称必须是当前工程生成的 binary 。 如果 binary 有多个文件,则以 proj_name:binary_name 格式指定文件名, proj_name 为工程 名&…...

Kafka入门-生产者
生产者 生产者发送流程: 延迟时间为0ms时,也就意味着每当有数据就会直接发送 异步发送API 异步发送和同步发送的不同在于:异步发送不需要等待结果,同步发送必须等待结果才能进行下一步发送。 普通异步发送 首先导入所需的k…...