element plus table组件搭配分页

<template>
  <div>
    <el-table :data="tableData?.slice((currentPage - 1) * pageSize, currentPage * pageSize)" style="width: 100%">
      <el-table-column prop="date" label="Date" align="center"/>
      <el-table-column prop="name" label="Name" align="center"/>
      <el-table-column prop="address" label="Address" align="center"/>
    </el-table>
    <!-- 分页 -->
    <div class="demo-pagination-block">
      <el-pagination v-model:current-page="currentPage" v-model:page-size="pageSize" :page-sizes="[5, 10, 20, 50]"
        layout="total, sizes, prev, pager, next, jumper" :total="tableData?.length" />
    </div>
  </div>
</template>

<script setup>
import { ref } from "vue";
// 默认页数
const currentPage = ref(1);
// 分页的默认数
const pageSize = ref(5);

const tableData = ref([
  {
    date: '2016-05-03',
    name: 'Tom',
    address: 'No. 189, Grove St, Los Angeles',
  },
  {
    date: '2016-05-02',
    name: 'Tom',
    address: 'No. 189, Grove St, Los Angeles',
  },
  {
    date: '2016-05-04',
    name: 'Tom',
    address: 'No. 189, Grove St, Los Angeles',
  },
  {
    date: '2016-05-01',
    name: 'Tom',
    address: 'No. 189, Grove St, Los Angeles',
  }, {
    date: '2016-05-03',
    name: 'Tom',
    address: 'No. 189, Grove St, Los Angeles',
  },
  {
    date: '2016-05-02',
    name: 'Tom',
    address: 'No. 189, Grove St, Los Angeles',
  },
  {
    date: '2016-05-04',
    name: 'Tom',
    address: 'No. 189, Grove St, Los Angeles',
  },
  {
    date: '2016-05-01',
    name: 'Tom',
    address: 'No. 189, Grove St, Los Angeles',
  }
]);

</script>
<style scoped>
.demo-pagination-block+.demo-pagination-block {
  margin-top: 10px;
}

.demo-pagination-block .demonstration {
  margin-bottom: 16px;
}

.demo-pagination-block {
  padding: 15px;
  background-color: white;
  display: flex;
  justify-content: center;
}
</style>
  • tableData:这是一个数组,它包含了所有的数据。

  • slice():这是 JavaScript 中数组的一个方法,它用于从原数组中提取一个新的子数组,原数组不受影响。slice() 方法接受两个参数:startend,分别表示切片的起始位置和结束位置(不包括 end)。

  • (currentPage - 1) * pageSize:这是计算分页起始位置的表达式。

    • currentPage 是当前页的页码。
    • pageSize 是每一页显示的数据条数。
    • (currentPage - 1) * pageSize 表示当前页应该从数组的哪个位置开始提取数据。例如,如果当前页是第 2 页,每页显示 10 条数据,那么起始位置就是 (2 - 1) * 10 = 10,即从索引 10 开始提取数据。
  • currentPage * pageSize:这是分页的结束位置。

    • 它表示当前页的数据应该截取到数组中的哪个位置。例如,如果当前页是第 2 页,每页显示 10 条数据,那么结束位置就是 2 * 10 = 20,即从索引 0 到索引 19 之间的数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值