当前位置:首页 > JavaScript

js 实现分页

2026-04-03 18:53:02JavaScript

分页实现方法

在JavaScript中实现分页功能通常涉及前端数据处理或与后端API交互。以下是几种常见的实现方式:

纯前端分页(适用于数据量较小的情况)

将全部数据加载到前端,通过JavaScript进行分页处理:

js 实现分页

const data = [...]; // 假设这是全部数据
const pageSize = 10;
let currentPage = 1;

function paginate(items, pageNumber, pageSize) {
  const startIndex = (pageNumber - 1) * pageSize;
  return items.slice(startIndex, startIndex + pageSize);
}

const paginatedData = paginate(data, currentPage, pageSize);

后端API分页(推荐方式)

与后端配合实现分页,通常需要传递页码和每页数量参数:

js 实现分页

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组件实现

结合DOM操作创建分页控件:

function createPagination(totalPages, currentPage) {
  let paginationHTML = '<div class="pagination">';

  // 上一页按钮
  if (currentPage > 1) {
    paginationHTML += `<button onclick="changePage(${currentPage - 1})">上一页</button>`;
  }

  // 页码按钮
  for (let i = 1; i <= totalPages; i++) {
    paginationHTML += `<button class="${i === currentPage ? 'active' : ''}" onclick="changePage(${i})">${i}</button>`;
  }

  // 下一页按钮
  if (currentPage < totalPages) {
    paginationHTML += `<button onclick="changePage(${currentPage + 1})">下一页</button>`;
  }

  paginationHTML += '</div>';
  document.getElementById('pagination').innerHTML = paginationHTML;
}

function changePage(page) {
  currentPage = page;
  // 重新获取数据或过滤现有数据
  updateDisplay();
}

完整示例(前端分页)

<div id="content"></div>
<div id="pagination"></div>

<script>
  const allData = Array.from({length: 100}, (_, i) => `项目 ${i + 1}`);
  const itemsPerPage = 10;
  let currentPage = 1;

  function displayItems() {
    const startIndex = (currentPage - 1) * itemsPerPage;
    const endIndex = startIndex + itemsPerPage;
    const paginatedItems = allData.slice(startIndex, endIndex);

    document.getElementById('content').innerHTML = 
      paginatedItems.map(item => `<div>${item}</div>`).join('');

    renderPagination();
  }

  function renderPagination() {
    const pageCount = Math.ceil(allData.length / itemsPerPage);
    let paginationHTML = '';

    if (currentPage > 1) {
      paginationHTML += `<button onclick="goToPage(${currentPage - 1})">上一页</button>`;
    }

    for (let i = 1; i <= pageCount; i++) {
      paginationHTML += `<button ${i === currentPage ? 'class="active"' : ''} onclick="goToPage(${i})">${i}</button>`;
    }

    if (currentPage < pageCount) {
      paginationHTML += `<button onclick="goToPage(${currentPage + 1})">下一页</button>`;
    }

    document.getElementById('pagination').innerHTML = paginationHTML;
  }

  function goToPage(page) {
    currentPage = page;
    displayItems();
  }

  // 初始化
  displayItems();
</script>

分页库推荐

对于复杂项目,可以考虑使用现成的分页库:

  • react-paginate(React项目)
  • vuejs-paginate(Vue项目)
  • jquery.twbsPagination(jQuery项目)

这些库提供了更多定制选项和样式支持,可以节省开发时间。

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

相关文章

vue 分页 实现

vue 分页 实现

Vue 分页实现方法 使用第三方库(如 Element UI) Element UI 提供了现成的分页组件 el-pagination,适合快速集成。 安装 Element UI: npm ins…

js实现轮播

js实现轮播

实现基础轮播效果 使用HTML结构创建轮播容器和图片元素: <div class="carousel"> <div class="carousel-inner">…

js实现轮播

js实现轮播

实现轮播图的基本思路 轮播图的核心逻辑是通过定时切换展示的图片或内容,通常结合左右滑动按钮和指示器(小圆点)增强交互性。以下是基于原生JavaScript的实现方法。 HTML结构 构建轮播图的HT…

js实现复制功能

js实现复制功能

使用 document.execCommand 方法 这种方法适用于较旧的浏览器,但在现代浏览器中可能被逐步淘汰。通过创建一个临时的 textarea 元素,将文本内容放入其中,然后执行复制命令。…

react 如何分页

react 如何分页

分页实现方法 在React中实现分页功能可以通过多种方式完成,具体取决于数据来源(如API或本地数据)和UI库的选择。以下是常见的实现方法: 使用本地数据分页 对于存储在组件状态或Context中…

vue router实现分页

vue router实现分页

使用 Vue Router 实现分页 在 Vue.js 项目中,可以通过 Vue Router 结合分页组件实现分页功能。以下是实现分页的几种方法: 使用路由参数传递页码 在路由配置中定义一个动态参…