当前位置: 首页 > news >正文

el-pagination 纯前端分页

需求:后端把所有数据都返给前端,前端进行分页渲染。

实现思路:先把数据存储到一个大数组中,然后调用方法进行切割。主要使用数组的slice方法

所有代码:

html

<template><div style="padding: 20px"><el-table :data="tableData"><el-table-column type="selection" width="55" /><el-table-column prop="username" label="用户名" show-overflow-tooltip /><el-table-column prop="firstName" label="姓名" show-overflow-tooltip /><el-table-column prop="email" label="邮箱" show-overflow-tooltip /></el-table><!-- 分页器 --><div class="pagination"><el-paginationv-model:current-page="pagination.pageNum"v-model:page-size="pagination.pageSize":page-sizes="[10, 20, 50, 100]"layout="total,  prev, pager, next,sizes, jumper":total="pagination.total"@size-change="handleSizeChange"@current-change="handleCurrentChange"/></div></div>
</template>

js

<script setup lang="ts">
import { ref, reactive } from "vue";let tableData = ref<any>([]); // 表格数据
let allList = reactive<any>([]);
//分页器
const pagination = reactive<any>({pageNum: 1,pageSize: 10,total: 0,
});// 前端分页-切割数据
const paging = () => {// 起始位置 = (当前页 - 1) x 每页的大小const start = (pagination.pageNum - 1) * pagination.pageSize;// 结束位置 = 当前页 x 每页的大小const end = pagination.pageNum * pagination.pageSize;tableData.value = allList.slice(start, end);
};// 获取列表数据
const getList = async () => {// 接口请求allList = [{id:1, username: "admin1", firstName: "管理员", email: "123456@163.com" },{id:2, username: "admin2", firstName: "管理员", email: "123456@163.com" },{id:3, username: "admin3", firstName: "管理员", email: "123456@163.com" },{id:4, username: "admin4", firstName: "管理员", email: "123456@163.com" },{id:5, username: "admin5", firstName: "管理员", email: "123456@163.com" },{id:6, username: "admin6", firstName: "管理员", email: "123456@163.com" },{id:7, username: "admin7", firstName: "管理员", email: "123456@163.com" },{id:8, username: "admin8", firstName: "管理员", email: "123456@163.com" },{id:9, username: "admin9", firstName: "管理员", email: "123456@163.com" },{id:10, username: "admin10", firstName: "管理员", email: "123456@163.com" },{id:11, username: "admin11", firstName: "管理员", email: "123456@163.com" },{id:12, username: "admin12", firstName: "管理员", email: "123456@163.com" },{id:13, username: "admin13", firstName: "管理员", email: "123456@163.com" },{id:14, username: "admin14", firstName: "管理员", email: "123456@163.com" },{id:15, username: "admin15", firstName: "管理员", email: "123456@163.com" },{id:16, username: "admin16", firstName: "管理员", email: "123456@163.com" },{id:17, username: "admin17", firstName: "管理员", email: "123456@163.com" },{id:18, username: "admin18", firstName: "管理员", email: "123456@163.com" },];pagination.total = allList.length;paging();
};
getList();// 分页事件
const handleSizeChange = (val: number) => {pagination.page = 1;pagination.limit = val;getList();
};
const handleCurrentChange = (val: number) => {pagination.page = val;getList();
};
</script>

http://www.lryc.cn/news/256215.html

相关文章:

  • 基于springboot的校园二手市场
  • 【开源】基于Vue和SpringBoot的在线课程教学系统
  • Mysql分布式集群部署---MySQL集群Cluster将数据分成多个片段,每个片段存储在不同的服务器上
  • 身份认证技术
  • Centos7、Mysql8.0 load_file函数返回为空的终极解决方法--暨selinux的深入理解
  • 基于Spring Boot的水产养殖管理系统
  • LCR 090. 打家劫舍 II(leetcode)动态规划
  • 【小沐学Python】Python实现语音识别(Whisper)
  • Nginx负载均衡实战
  • Redis skiplist源码解析(支持范围查询)
  • MVSNeRF:多视图立体视觉的快速推广辐射场重建(2021年)
  • 华为OD机试真题-CPU算力分配-2023年OD统一考试(C卷)
  • 校验数据是否重叠(各种操作符>,<,>=,<=,or,and)
  • 大一C语言作业 12.8
  • ELasticsearch:什么是语义搜索?
  • ooTD I 女儿是自己的,尽情打扮尽情可爱
  • 第62天:django学习(十一)
  • Rust测试字符串的移动,Move
  • vue+electron问题汇总
  • Linux中的网络时间服务器
  • fastadmin打印页面
  • Java 将word转为PDF的三种方式和处理在服务器上下载后乱码的格式
  • C\C++ 获取最值
  • 机器学习之无监督学习:九大聚类算法
  • Linux高级管理-搭建网站服务
  • Windows 系统,TortoiseSVN 无法修改 Log 信息解决方法
  • 编译 Android gradle-4.6-all.zip 报错问题记录
  • Linux系统调试课:Valgrind 内存调试
  • python主流开发工具排名,python开发工具有哪些
  • Spring Boot Async:从入门到精通,原理详解与最佳实践