前端实现分页功能

前端实现分页功能,话不多说直接操作

这个是分页的element ui(pagesize是一页有多少条数据,currentPage是当前在第几页)

<div class="tablepage">
          <!-- -->
          <el-pagination
           	@size-change="handleSizeChange" 
          	@current-change="handleCurrentChange"
            :current-page="currentPage" 
            :page-size="pageSize" 
            layout="total, prev, pager, next, jumper" :total="total">
          </el-pagination>
        </div>

这个是数据(这里用的假数据)

total: '',  // 总数据条数
currentPage: 1, // 当前页码
pageSize: 10, //每页个数
tableData: [], // 列表数据
table : [{ vouchernum: 0 },{ vouchernum: 1 }, { vouchernum: 2 }, { vouchernum: 3 }, 
{ vouchernum: 4 }, { vouchernum: 5 }, { vouchernum: 6 }, 
{ vouchernum: 7 }, { vouchernum: 8 }, { vouchernum: 9 },
 { vouchernum: 10 }, { vouchernum: 11 }, { vouchernum: 12 }, 
 { vouchernum: 13 }, { vouchernum: 14 }, { vouchernum: 15 },
  { vouchernum: 16 }, { vouchernum: 17 }, { vouchernum: 18 },
   { vouchernum: 19 }, { vouchernum: 20 }, { vouchernum: 21 }];

第一步:先把数据分页,这里table就是上面的数据源,tableData就是处理后每一页的数据。slice方法就是截取数组中的数据(可以去查一下很简单,这里不多讲)。pageSize就是每页有多少条数据,currentPage就是当前在第几页。a,b这两个式子就是规律总结出来的公式可以直接用(也可以自己写几个数,很简单就可以看出来)。最后别忘了total这个是总数据的条数

getmaterial() {
 	let a = (this.pageSize * (this.currentPage - 1))
 	let b = (this.pageSize * this.currentPage)
 	this.tableData = table.slice(a, b)
 	this.total = table.length
 }

写到这里,你会发现点击第二页或者更后面的页数据没有跳转,接下来实现数据跳转

 handleCurrentChange(val) {
      this.currentPage = val;
      this.getmaterial()
      console.log("当前页", val)
 }

这样最简单的分页就实现了,具体情况结合具体数据,欢迎大家评论区留言更好的方法,让我也学习学习。

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
前端分页功能可以通过以下步骤实现: 1. 定义每页显示的数据条数和当前页码。 2. 根据当前页码和每页显示的数据条数,计算出需要显示的数据的起始索引和结束索引。 3. 使用JavaScript数组的slice方法截取需要显示的数据。 4. 将截取得到的数据渲染到页面上。 5. 生成分页按钮,并添加点击事件,点击按钮时更新当前页码,并重新渲染数据。 下面是一个简单的示例代码: HTML部分: ```html <div id="data"></div> <div id="pagination"></div> ``` JavaScript部分: ```javascript // 数据 const dataList = [/* 数据数组 */]; // 每页显示的数据条数 const pageSize = 10; // 当前页码 let currentPage = 1; // 获取需要显示的数据 function getData() { const startIndex = (currentPage - 1) * pageSize; const endIndex = startIndex + pageSize; return dataList.slice(startIndex, endIndex); } // 渲染数据 function renderData() { const dataDiv = document.getElementById('data'); const data = getData(); let html = ''; data.forEach(item => { html += `<p>${item}</p>`; }); dataDiv.innerHTML = html; } // 生成分页按钮 function renderPagination() { const paginationDiv = document.getElementById('pagination'); const totalPages = Math.ceil(dataList.length / pageSize); let html = ''; for (let i = 1; i <= totalPages; i++) { html += `<button>${i}</button>`; } paginationDiv.innerHTML = html; // 给按钮添加点击事件 paginationDiv.querySelectorAll('button').forEach((btn, index) => { btn.addEventListener('click', () => { currentPage = index + 1; renderData(); renderPagination(); }); }); } // 初始化 renderData(); renderPagination(); ``` 在实际应用中,需要根据具体需求对代码进行适当修改和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值