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

uniapp ,微信小程序,滚动(下滑,上拉)到底部加载下一页内容

前言

小程序的内容基本都是滑动到底部加载下一页,这个一般都没有什么好用的组件来用,我看vant和uniapp的插件里最多只有个分页,没有滚动到底部加载下一页。再次做个记录。

效果预览

请添加图片描述
下滑到底部若是有下一页,则会自动加载下一页,若是没有,或者是已经加载完所有数据则提示数据加载完毕,(我这个遮挡了手机号部分。虽然是胡乱写的,但是但是不出现为好)

踩坑点

这两点非常重要 !!!
1.内容部分一定要要用scroll-view 来包裹,不然没法触发onReachBottom
2.比如我的新增员工这个底部按钮,不要用固定定位,不然也没法触发onReachBottom,

实现逻辑

1.1 定义数据当前页码和总页码

先定义总页码和当前页码,

data() {return {data: [],currentPage: 1,//页码totle_page: 0,//总页码};},

1.2 拿到后端给的数据的页码

        // 员工列表// 这里是我封装的网络请求,记得替换成你们的,最主要的就是请求成功之后的逻辑处理async GetStaffData() {const res = await this.$axios("Basic/GetStaff", {title: this.searchYG,status: '',//状态(留空查询全部,0禁用1正常)types: '',//类型(留空查询全部,1正式工2临时工)page: this.currentPage,//页码limit: '',//每页数量});console.log("员工信息", JSON.parse(JSON.stringify(res)));if (res.data.code === 0) {this.totle_page = res.data.totle_page;if (this.currentPage === 1) {this.data = res.data.lists;} else {this.data = [...this.data, ...res.data.lists];}this.currentPage++;} else {uni.showToast({title: res.data.msg,icon: 'none',duration: 1000});}},

在这里插入图片描述
totle_oage:总页数

1.3 定义reload函数

reload() {this.currentPage = 1; // 重置页码this.data = []; // 清空数据this.GetStaffData(); // 加载数据},

1.4 添加 onReachBottom 函数

onReachBottom() {if (this.currentPage <= this.totle_page) {this.GetStaffData()} else {uni.showToast({title: '已加载完所有数据',icon: 'none',duration: 1000});}},

1.5 在onLoad 加载reload 函数

onLoad() {this.reload();uni.$on('callreload', () => {this.reload();});},

1.6 我的新增员工的样式,

<view class="addAction"   style="position:fixed;bottom:0; width:100%"><view @click="AddStaffAction"> 新增员工</view></view>

以上就是本文全部内容。其中onLoad中的uni.$on这部分内容是配合滚动加载使用的,效果就是检测下一个页面,也就是我的修改员工信息页面中若是,修改员工信息了就自动重新加载reload,更新本页数据,若是没有检测到数据更改,则不更新本页数据。

uni.$on的具体使用方式

http://www.lryc.cn/news/475767.html

相关文章:

  • MySQL中的日志类型有哪些?binlog、redolog和undolog的作用和区别是什么?
  • 【uni-app】创建自定义模板
  • Cesium移动Primitive位置
  • 安卓13默认连接wifi热点 android13默认连接wifi
  • parted 磁盘分区
  • 第三百零八节 Log4j教程 - Log4j日志到数据库
  • ai智能语音电销机器人可以做哪些事情?
  • CleanShot X - Mac(苹果电脑)专业截图录屏软件
  • Kafka 客户端工具使用分享【offsetexplorer】
  • uni-app 下拉刷新、 上拉触底(列表信息)、 上滑加载(短视频) 一键搞定
  • 基于Spring Boot+Vue的助农销售平台(协同过滤算法、限流算法、支付宝沙盒支付、实时聊天、图形化分析)
  • 如何在Linux环境中的Qt项目中使用ActiveMQ-CPP
  • HTML字符实体详解
  • Netty学习——NIO基础与IO模型
  • ZYNQ7045之YOLO部署——FPGA-ZYNQ Soc实战笔记1
  • Spring中的资源以及分类
  • 初步认识Java,及使用
  • C,C++被static标记的变量和函数分别是什么意思
  • Map 不常用方法介绍
  • 论文翻译:ICLR 2024.DETECTING PRETRAINING DATA FROM LARGE LANGUAGE MODELS
  • Spring 框架精髓:从基础到分布式架构的进阶之路
  • 深入理解C++ Lambda表达式:语法、用法与原理及其包装器的使用
  • C# 编程语言:跨时代的革命
  • 恋爱脑学Rust之Box与RC的对比
  • Rust 力扣 - 1423. 可获得的最大点数
  • Android15音频进阶之Cuttlefish搭建音频开发环境(九十二)
  • 发现不为人知的AI宝藏:发现AI新天地! —— 《第八期》
  • 基于物联网设计的地下煤矿安全监测与预警
  • Java 23 的12 个新特性!!
  • .NET 8 中 Entity Framework Core 的使用