当前位置:首页 > JavaScript

js前端实现分页

2026-03-01 08:24:09JavaScript

前端分页实现方法

分页是前端开发中常见的需求,以下介绍几种实现方式:

基于数组的分页

对于已经加载到前端的数据,可以通过数组切片实现分页:

function paginate(array, pageNumber, pageSize) {
  return array.slice((pageNumber - 1) * pageSize, pageNumber * pageSize);
}

const data = [1,2,3,4,5,6,7,8,9,10];
const currentPage = 2;
const itemsPerPage = 3;
const paginatedData = paginate(data, currentPage, itemsPerPage);

结合API的分页

当数据量较大时,通常需要后端配合实现分页:

async function fetchPaginatedData(page, size) {
  const response = await fetch(`/api/data?page=${page}&size=${size}`);
  return response.json();
}

// 使用示例
fetchPaginatedData(1, 10).then(data => {
  console.log(data);
});

分页组件实现

一个简单的分页UI组件可以这样实现:

class Pagination {
  constructor(totalItems, itemsPerPage, currentPage = 1) {
    this.totalItems = totalItems;
    this.itemsPerPage = itemsPerPage;
    this.currentPage = currentPage;
    this.totalPages = Math.ceil(totalItems / itemsPerPage);
  }

  getPages() {
    let startPage, endPage;
    if (this.totalPages <= 10) {
      startPage = 1;
      endPage = this.totalPages;
    } else {
      if (this.currentPage <= 6) {
        startPage = 1;
        endPage = 10;
      } else if (this.currentPage + 4 >= this.totalPages) {
        startPage = this.totalPages - 9;
        endPage = this.totalPages;
      } else {
        startPage = this.currentPage - 5;
        endPage = this.currentPage + 4;
      }
    }
    return Array.from({length: endPage - startPage + 1}, (_, i) => startPage + i);
  }
}

使用现有库

流行的前端库如React、Vue等都有成熟的分页组件:

  • React: react-paginate
  • Vue: vue-paginate
  • jQuery: DataTables

性能优化考虑

对于大数据量分页:

js前端实现分页

  • 实现虚拟滚动代替传统分页
  • 使用懒加载技术
  • 考虑无限滚动模式

分页实现应根据具体项目需求选择合适方案,小型数据集可使用纯前端分页,大型数据集建议采用前后端协作方式。

标签: 分页js
分享给朋友:

相关文章

js实现动画

js实现动画

使用 CSS 动画与 JavaScript 控制 通过 JavaScript 动态添加或移除 CSS 类来触发动画。CSS 定义关键帧(@keyframes),JavaScript 通过 classL…

js实现图片上传

js实现图片上传

图片上传的基本实现 使用HTML的<input type="file">元素配合JavaScript的File API可以实现图片上传功能。HTML部分需要创建一个文件选择输入框和一个用于…

js实现乘

js实现乘

JavaScript 实现乘法运算 在 JavaScript 中实现乘法运算可以通过多种方式完成,包括基本运算符、函数封装以及高级算法(如大数乘法)。以下是几种常见方法: 使用基本乘法运算符 Jav…

js实现变形

js实现变形

使用 CSS 和 JavaScript 实现元素变形 在 JavaScript 中实现变形效果通常结合 CSS 的 transform 属性,通过动态修改该属性实现元素的旋转、缩放、倾斜或平移。 基…

js节流实现

js节流实现

节流的概念 节流(Throttle)是一种限制函数执行频率的技术,确保函数在一定时间间隔内只执行一次。常用于滚动事件、窗口调整等高频触发的场景。 基础实现方法 使用时间戳判断是否执行函数: fun…

js实现轮播代码

js实现轮播代码

基础轮播实现 使用HTML、CSS和JavaScript创建一个简单的轮播效果。HTML部分定义轮播容器和图片元素。 <div class="carousel"> <div c…