前端如何实现分页

devtools/2025/1/23 22:55:23/

前言

虽然在实际开发中,大多数分页都是由后端处理,但还是有小部分场景需要前端来实现分页。
实现并不难,仅作为记录,方便下次拿来直接使用。

准备数据源

数据源可以是从后端获取的数据列表,也可以是前端模拟的数据集。将数据源格式处理成数组即可。

js">// 模拟 50 条数据
const list = Array.from({ length: 50 }, (_, index) => `Item ${index + 1}`);

计算总页数

计算总页数需要知道 数据源总量 和 每页展示数据的数量,也就是 lengthpageSize

js">const totalPages = Math.ceil(length / pageSize);

将数据分割成页

根据 每页展示的数据量 以及 当前的页码,就能动态的将每页的数据分割出来。
使用 js 中的数组方法 slice 就能够很容易的实现,它在分割数据源之后会生成一个新的数组,不会改变原数组的数据。

js">function pagination(page, pageSize) {const startIndex = (page - 1) * pageSize;const endIndex = startIndex + pageSize;return list.slice(startIndex, endIndex);
}

呈现当前页数据

使用 pagination 方法,传入 页码 和 每页展示的数量 获取对应页的数据,并将其呈现在前端页面中。
例如:展示第二页数据,每页十条。

js">const displayList = pagination(2, 10);

总结

list 是用于切割出每页数据的原数组,不可更改,通过点击页码调用 pagination 方法生成一个新的数组 displayList
displayList 是用于展示在页面上的当前页数据。


http://www.ppmy.cn/devtools/152980.html

相关文章

正向代理(动态 IP 代理)和反向代理

引入 VPN 是正向代理 Nginx,Getway是反向代理 那么你清楚正向代理和反向代理实际区别吗 从链路来看 客户端的服务 服务端的服务 完整链路 正向代理 概念 正向代理,是一个位于客户端和原始服务器之前的服务器,为了从目标服务器取得内容&…

Linux终端之旅: 权限管理三剑客与特殊权限

Linux 权限的概念 Linux 下有两种用户:超级用户( root )、普通用户。 超级用户:可以在linux下做任何事,不受-rwx权限的影响 普通用户:linux使用者,受权限的影响 超级用户的命令提示符是“#”&…

arcgis for js只显示范围内的天地图,其余部分透明

效果 只显示范围内的天地图,其余部分透明化 实现 复制后直接运行即可 <!DOCTYPE html> <html lang"zn"><head><meta charset"UTF-8" /><meta http-equiv"X-UA-Compatible" content"IEedge" /><met…

Spring Retry实现接口或者方法重试调用

背景 调用外部系统或者调用一些方法失败的时候&#xff0c;我们需要有个重试机制&#xff0c;保证代码的健壮性。如果直接用while和变量重试&#xff0c;比较繁琐 使用while实现重试&#xff0c;比较繁琐 public class RetryExample {public static void main(String[] args…

我谈概率论与数理统计的知识体系

学习概率统计二十多年后&#xff0c;在廖老师的指导下&#xff0c;终于明白各章之间的关系。本来就是一条线两个分支&#xff0c;脉络很清晰。 分支一&#xff1a;从随机现象到样本空间到随机事件再到概率。 从随机事件到随机变量&#xff1a;为了进行定量的数学处理&#xf…

epoll 的边缘触发(Edge Triggered)与水平触发(Level Triggered)

文章目录 epoll的边缘触发&#xff08;Edge Triggered&#xff09;与水平触发&#xff08;Level Triggered&#xff09;边缘触发&#xff08;Edge Triggered, ET&#xff09;特点适用场景示例 水平触发&#xff08;Level Triggered, LT&#xff09;特点适用场景示例 边缘触发 v…

深入理解 Spring 的 Lazy Loading:原理、实现与应用场景

延迟加载&#xff08;Lazy Loading&#xff09;是 Spring 容器管理 Bean 的一种策略&#xff0c;指 只有在需要时&#xff08;调用 getBean() 方法获取 Bean 时&#xff09;才会实例化该 Bean。这是 Spring 提供的一种优化机制&#xff0c;用于提高启动效率和降低资源占用。 1.…

wireshark工具简介

目录 1 wireshark介绍 2 wireshark抓包流程 2.1 选择网卡 2.2 停止抓包 2.3 保存数据 3 wireshark过滤器设置 3.1 显示过滤器的设置 3.2 抓包过滤器 4 wireshark的封包列表与封包详情 4.1 封包列表 4.2 封包详情 参考文献 1 wireshark介绍 wireshark是非常流行的网络…