小数据(≤200条)用Array.slice()前端分页,大数据必须服务端分页;页码数组需动态生成,核心是控制显示数量、边界收缩与省略号插入。

前端分页该用 Array.slice() 还是服务端接口
小数据(≤ 200 条)直接用 Array.slice() 前端切片,响应快、无请求开销;大数据必须走服务端分页,否则内存爆、渲染卡、首屏慢。别被“纯前端更简单”误导——10 万条数据加载到 JS 再 slice,浏览器直接假死。
- 前端分页前提是:数据已完整加载,比如 JSON 文件、内联脚本或初始化时 fetch 一次全量
- 服务端分页每次翻页都发新请求,URL 必须带
?page=2&limit=10,不能靠 JS 变量维持状态 - 混合方案常见但危险:前端缓存多页数据,看似快,但用户改筛选条件后容易 stale(陈旧)
页码数组生成函数怎么写才不崩
硬编码 [1, 2, 3, 4, 5] 会立刻在总页数为 3 或 100 时出错。必须用动态逻辑生成可见页码段,核心是控制显示数量 + 边界收缩 + 省略号插入。
- 输入参数固定:
currentPage、totalPages、maxVisible = 5(最多显示几个数字页) - 起始页
start不是currentPage - 2,而是Math.max(1, currentPage - Math.floor(maxVisible / 2)) - 结束页
end要二次修正:if (start === 1) end = Math.min(totalPages, maxVisible),否则第 1 页时右边会溢出 - 省略号只在跳过 ≥ 2 页时加:
if (start > 2) pages.push(1, '...');if (end
HTML 结构和可访问性哪些地方一写就废
用一堆
包裹,内部用 + ,不是 —— 页码是有序序列,且里面用 ,不能是可点击的 @#@#@#@#@#@#@#@#@#@0(服务端路由)或 (前端路由),二者语义和行为完全不同,选错一个,整套可访问性就垮了。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











