前端如何实现分页?

先定义分页中需要用的三个值:currentPage(当前页码)、total(总条数)、pageSize(每页展示的数据量)
分页的思路:把所有的数据请求回来后,通过arr.slice(开始索引,结束索引)来进行截取每一页的数据;假设当前页是currentPage = 1pageSize = 5,那么应该从(currentPage-1)*pageSize开始截取,到currentPage*pageSize结束,自己验证下,找到这样的规律后,就可以截取每一页的数据了;

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    ul {
      list-style: none;
      margin-top: 100px;
    }

    .list {
      width: 200px;
      background-color: aqua;
      margin-top: 10px;
      text-align: center;
      margin: 10px auto 0px;
    }

    .pageBtn {
      text-align: center;
    }
  </style>
</head>

<body>
  <ul id="tabel">

  </ul>
  <div class="pageBtn">
    <span>请点击页码:</span>
    <button>1</button>
    <button>2</button>
    <button>3</button>
  </div>
</body>
<script>
  // 假设这就是后台返回的数据
  const tabelList = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]
  // 当前页码
  const currentPage = 1
  // 页面尺寸
  const pageSize = 5
  // 截取到相应的页码数据
  let pageList = []

  const ul = document.getElementById('tabel')
  function List(pageData) {
    ul.innerHTML = ""
    // ul绑定数据
    for (let i = 0; i < pageData.length; i++) {
      const li = document.createElement("li")
      li.classList.add("list")
      li.innerText = pageData[i]
      ul.appendChild(li)
    }
  }

  // 刚开始显示的是第一页,所以先截取第一页的数据
  pageList = tabelList.slice((currentPage - 1) * pageSize, currentPage * pageSize)
  List(pageList)

  // 给按钮注册点击事件
  const btn = document.getElementsByClassName("pageBtn")
  const li = document.querySelector("li")
  btn[0].onclick = function (e) {
    let newpageList = []
    newCurrentPage = Number(e.target.innerText)
    newpageList = tabelList.slice((newCurrentPage - 1) * pageSize, newCurrentPage * pageSize)
    List(newpageList)
  }
</script>

</html>
  • 14
    点赞
  • 123
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue前端分页功能可以通过Element UI来实现。Element UI是一套基于Vue.js的桌面端组件库,提供了丰富的组件和工具,包括分页组件。 首先,在Vue项目中使用npm安装Element UI: npm install element-ui 然后,在项目的入口文件main.js中引入Element UI的样式和组件: import Vue from 'vue' import ElementUI from 'element-ui' import 'element-ui/lib/theme-chalk/index.css' Vue.use(ElementUI) 现在,你可以在需要分页的组件中使用Element UI的分页组件了。以下是一个示例: <template> <div> <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="currentPage" :page-sizes="[10, 20, 30, 40]" :page-size="pageSize" layout="sizes, prev, pager, next, jumper" :total="total"> </el-pagination> </div> </template> <script> export default { data() { return { currentPage: 1, // 当前页码 pageSize: 10, // 每页显示的条数 total: 100, // 总记录数 } }, methods: { handleSizeChange(val) { this.pageSize = val this.currentPage = 1 // 当改变每页显示的条数时,重置当前页码为1 // 并重新获取数据 this.getData() }, handleCurrentChange(val) { this.currentPage = val // 当改变当前页码时,重新获取数据 this.getData() }, getData() { // 根据当前页码和每页显示的条数,发送请求获取数据 }, }, } </script> 通过监听分页组件的size-change事件和current-change事件,我们可以获取到用户改变每页显示的条数和当前页码的操作。 当用户改变每页显示的条数时,我们可以将当前页码重置为1,并重新发送请求获取数据。 当用户改变当前页码时,我们重新发送请求获取数据。 在getData方法中,可以根据当前页码和每页显示的条数,发送请求获取相应的数据。最后,将获取到的数据渲染到页面中。 这样,通过使用Element UI的分页组件,我们就可以实现Vue前端分页功能了。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值