AntDesign中a-pagination实现一次性获取所有数据下手动分页

业务效果

核心代码

<template>
<a-pagination v-model:current="current"
:total="total"
:pageSize="pageSize"
show-less-items
show-size-changer
:pageSizeOptions="['5', '10', '20', '50', '100']"
@change="pageNumChange"
@showSizeChange="pageSizeChange"
/>
</template>
<script>
// 当前页码变化
const pageNumChange = (page, pageSize) => {
detailPageData.value = mockPagination(pageSize, page, detailTotalPageData.value); // detailTotalPageData.value的值是从后端一次性获取所有的数据
}
// 当前页数量变化
const pageSizeChange = (cur, size) => {
pageSize.value = size;
current.value = cur;
detailPageData.value = mockPagination(pageSize.value, current.value, detailTotalPageData.value);
}
// 前端分页
const mockPagination = (pageSize, currentPage, arr) => {
let skipNum = (currentPage - 1) * pageSize;
return (skipNum + pageSize >= arr.length) ? arr.slice(skipNum, arr.length) : arr.slice(skipNum, skipNum + pageSize);
}
</script>
posted @   Felix_Openmind  阅读(402)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
*{cursor: url(https://files-cdn.cnblogs.com/files/morango/fish-cursor.ico),auto;}
点击右上角即可分享
微信分享提示