7.4Element Plus 分页与表格组件

 el-pagination el-table 

这两个组件是后台管理系统中最常用的数据展示与交互组合,通常配合使用实现 分页加载、排序、筛选、操作 等功能。


一、分页组件 el-pagination

用于控制大量数据的分页展示。

✅ 基本结构
<el-paginationv-model:current-page="currentPage"v-model:page-size="pageSize":total="total":page-sizes="[10, 20, 50, 100]"layout="total, sizes, prev, pager, next, jumper"background
/>

🔧 核心属性(Props)
属性类型说明默认值
v-model:current-pagenumber当前页码(双向绑定)1
v-model:page-sizenumber每页条数(双向绑定)10
totalnumber总数据条数0
page-sizesnumber[]每页显示条数选择器选项[10, 20, 30, 40, 50, 100]
layoutstring组件布局,用逗号分隔'prev, pager, next'
backgroundboolean是否为按钮添加背景色false
disabledboolean是否禁用分页false
smallboolean是否使用小型分页false

layout 可选值

  • total: 总条数
  • sizes: 每页条数选择器
  • prev: 上一页
  • pager: 页码列表
  • next: 下一页
  • jumper: 跳转输入框
  • ->: 分隔符(将后续元素推到右侧)

📢 事件(Events)
事件说明回调参数
@size-change每页条数改变时触发改变后的 pageSize
@current-change当前页改变时触发改变后的 currentPage
@prev-click点击上一页时触发-
@next-click点击下一页时触发-

⚠️ 注意:使用 v-model 后,通常只需监听 @size-change@current-change 来重新请求数据。


二、表格组件 el-table

用于展示结构化数据。

✅ 基本结构
<el-table :data="tableData" style="width: 100%"><el-table-column prop="name" label="姓名" /><el-table-column prop="age" label="年龄" />
</el-table>

🔧 表格核心属性(el-table Props)
属性类型说明
dataarray显示的数据源
stripeboolean是否显示斑马纹
borderboolean是否显示纵向边框
fitboolean列宽是否自撑开
heightstring/number固定高度,超出出现滚动条
max-heightstring/number最大高度
highlight-current-rowboolean高亮当前行
empty-textstring数据为空时显示文本
v-loadingboolean是否显示加载中

🔧 列定义 el-table-column 属性
属性类型说明
typestring列类型:selectionindexexpand
labelstring列标题
propstring对应字段名
width / min-widthstring/number列宽
fixedstring/boolean固定列:leftright
sortableboolean/string是否可排序,custom 为自定义
formatterFunction格式化内容函数
show-overflow-tooltipboolean内容过长显示 tooltip
align / header-alignstring对齐方式:leftcenterright

🧩 高级功能
1. 复选框列
<el-table-column type="selection" width="55" />
2. 序号列
<el-table-column type="index" label="序号" width="80" />
3. 可展开行
<el-table-column type="expand"><template #default="props"><p>详情:{{ props.row.detail }}</p></template>
</el-table-column>
4. 自定义列模板
<el-table-column label="操作" width="180"><template #default="{ row }"><el-button size="small" @click="edit(row)">编辑</el-button><el-button size="small" type="danger">删除</el-button></template>
</el-table-column>
5. 排序
<el-table-column prop="age" label="年龄" sortable />
<!-- 或自定义排序 -->
<el-table-column prop="age" label="年龄" sortable="custom" @sort-change="handleSort" />
6. 筛选
<el-table-columnprop="tag"label="标签":filters="[{ text: '家', value: '家' }, { text: '公司', value: '公司' }]":filter-method="filterTag"
/>
function filterTag(value, row) {return row.tag === value
}

三、实战案例(完整)

<script setup>
import { ref, reactive, onMounted } from 'vue'
import { ElMessage, ElMessageBox } from 'element-plus'// 响应式数据
const tableData = ref([])
const total = ref(0)
const loading = ref(false)// 分页
const currentPage = ref(1)
const pageSize = ref(10)// 搜索与排序
const searchKey = ref('')
const sortState = reactive({ prop: '', order: '' })// 模拟数据获取
const fetchData = () => {loading.value = truesetTimeout(() => {const allData = Array.from({ length: 100 }, (_, i) => ({id: i + 1,name: `用户${i + 1}`,age: 18 + (i % 50),address: `地址 ${i + 1}`}))// 搜索let filtered = allData.filter(item => item.name.includes(searchKey.value))// 排序if (sortState.prop && sortState.order) {filtered.sort((a, b) => {const diff = a[sortState.prop] - b[sortState.prop]return sortState.order === 'descending' ? -diff : diff})}// 分页const start = (currentPage.value - 1) * pageSize.valueconst end = start + pageSize.valuetableData.value = filtered.slice(start, end)total.value = filtered.lengthloading.value = false}, 500)
}// 事件
const handleSearch = () => {currentPage.value = 1fetchData()
}const handleSortChange = ({ prop, order }) => {sortState.prop = propsortState.order = ordercurrentPage.value = 1fetchData()
}const handleEdit = (row) => ElMessage.info(`编辑:${row.name}`)
const handleDelete = (row) => {ElMessageBox.confirm(`删除 ${row.name}?`, '确认', { type: 'warning' }).then(() => ElMessage.success('删除成功')).catch(() => ElMessage.info('取消'))
}onMounted(() => fetchData())
</script><template><div class="p-4"><div class="flex justify-between mb-4"><h3 class="text-lg font-medium">用户列表</h3><el-input v-model="searchKey" placeholder="搜索姓名" @input="handleSearch" style="width: 240px" /></div><el-table :data="tableData" stripe border v-loading="loading" @sort-change="handleSortChange"><el-table-column type="index" label="序号" width="80" /><el-table-column prop="name" label="姓名" sortable /><el-table-column prop="age" label="年龄" sortable width="100" /><el-table-column prop="address" label="地址" show-overflow-tooltip /><el-table-column label="操作" width="160"><template #default="{ row }"><el-button size="small" @click="handleEdit(row)">编辑</el-button><el-button size="small" type="danger" @click="handleDelete(row)">删除</el-button></template></el-table-column></el-table><el-paginationv-model:current-page="currentPage"v-model:page-size="pageSize":total="total"layout="total, sizes, prev, pager, next, jumper"background@size-change="fetchData"@current-change="fetchData"class="mt-4 justify-end"/></div>
</template>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/96035.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/96035.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

搭建机器学习模型的数据管道架构方案

本篇文章Designing Data Pipeline Architectures for Machine Learning Models适合对数据管道架构感兴趣的读者&#xff0c;亮点在于详细解析了传统数据仓库、云原生数据湖和现代湖仓这三种架构&#xff0c;帮助理解如何将原始数据转化为可操作的预测。文中还强调了不同架构的优…

GitHub 热榜项目 - 日榜(2025-09-06)

GitHub 热榜项目 - 日榜(2025-09-06) 生成于&#xff1a;2025-09-06 统计摘要 共发现热门项目&#xff1a;15 个 榜单类型&#xff1a;日榜 本期热点趋势总结 本期GitHub热榜显示AI自动化与安全运维为核心趋势。Bytebot、EvolutionAPI等AI代理项目凸显自然语言交互和容器化…

Homebrew执行brew install出现错误(homebrew-bottles)

问题描述 在使用homebrew安装软件时&#xff0c;出现如下报错&#xff1a; Downloading https://mirrors.aliyun.com/homebrew/homebrew-bottles/bottles-portable-ruby/portable ruby-3.4.5.arm64_big_sur.bottle.tar.gz curl: (22) The requested URL returned error: 404 …

23种设计模式——工厂方法模式(Factory Method Pattern)详解

✅作者简介&#xff1a;大家好&#xff0c;我是 Meteors., 向往着更加简洁高效的代码写法与编程方式&#xff0c;持续分享Java技术内容。 &#x1f34e;个人主页&#xff1a;Meteors.的博客 &#x1f49e;当前专栏&#xff1a;设计模式 ✨特色专栏&#xff1a;知识分享 &#x…

NPU边缘推理识物系统

目录 NPU边缘推理识物系统 一、项目简介 二、硬件介绍 三、软件设计 1、底层NPU推理代码 2、应用层QT显示代码 四、项目成果展示 NPU边缘推理识物系统 一、项目简介 物品分类是计算机视觉的重要技术&#xff0c;本项目的核心是&#xff1a;使用NPU&#xff08;神经网络…

C# WinForm分页控件实现与使用详解

C# WinForm分页控件实现与使用详解概述在WinForms应用程序开发中&#xff0c;数据分页是常见的需求。本文将介绍如何实现一个功能完整的分页控件&#xff0c;并在窗体中如何使用该控件进行数据分页展示。分页控件实现核心属性与字段public partial class PageControl : UserCon…

高级 ACL 有多强?一个规则搞定 “IP + 端口 + 协议” 三重过滤

一、实验拓扑及描述 二、实验需求 1、完成拓扑中各设备的基础配置&#xff0c;使得全网互通&#xff1b; 2、在上一个需求的基础上&#xff0c;在路由器上部署高级ACL&#xff0c;使得Client1无法访问Server的HTTP服务&#xff0c;但是PC1依然能够访问服务器及其他节点&#xf…

支持多材质密度设置的金属重量计算使用指南

传统手工计算各种型材&#xff08;如钢管、角钢、钢板等&#xff09;的重量繁琐且容易出错。 它的体积小巧&#xff0c;不足100KB&#xff0c;运行不占内存&#xff0c;绿色免安装&#xff0c;双击即开&#xff0c;使用便捷。 可计算钢管、钢板、型钢、角钢等常见型材的重量&a…

在Spring Boot中使用H2数据库

好处 程序启动时自动创建数据库数据表。 使用步骤 引入依赖&#xff1a; <dependency><groupId>com.h2database</groupId><artifactId>h2</artifactId><scope>runtime</scope></dependency><dependency><groupId&…

Day21_【机器学习—决策树(2)—ID3树 、C4.5树、CART树】

一、ID3 决策树1. 核心思想使用信息增益&#xff08;Information Gain&#xff09;作为特征选择的标准&#xff0c;递归地构建决策树。2. 特征选择标准信息增益&#xff08;IG&#xff09;&#xff1a;选择使信息增益最大的特征进行划分。3. 优点算法简单&#xff0c;易于理解。…

2025计算机视觉新技术

CLIP / BLIP-3 类「视觉-语言大模型」 • 是什么&#xff1a;让网络自己学会“看图说话”&#xff0c;zero-shot 就能分类、检测、检索。 • 能干什么&#xff1a;不写训练代码&#xff0c;直接一句中文 prompt 就把商品图分成 500 类。 • 落地难度&#xff1a;★☆☆&#xf…

[光学原理与应用-431]:非线性光学 - 能生成或改变激光波长的物质或元件有哪些?

要生成或改变激光波长&#xff0c;可依赖增益介质、非线性光学元件、调谐元件及特殊激光器设计&#xff0c;以下是一些关键物质和元件及其作用机制&#xff1a;一、增益介质&#xff1a;波长的“决定者”增益介质是激光器的核心&#xff0c;其原子或分子的能级结构直接决定输出…

接口权限验证有哪些方式

接口权限验证是保障 API 安全的核心机制&#xff0c;常见的方式有以下几类&#xff0c;适用于不同场景和安全需求&#xff1a; 1. 基于令牌&#xff08;token&#xff09;的验证 &#xff08;1&#xff09;JWT&#xff08;JSON Web Token&#xff09; 原理&#xff1a; 服务器验…

Go开发的自行托管代理加速服务:支持Docker与GitHub加速

HubProxy&#xff1a;一站式解决Docker与GitHub访问难题的轻量级代理服务作为开发者&#xff0c;我们经常遇到这些问题&#xff1a;Docker镜像拉取速度慢得让人抓狂&#xff0c;GitHub Release文件下载到一半断开&#xff0c;或者某些境外容器仓库完全无法访问。最近发现的hubp…

用Python打造逼真的照片桌面:从拖拽到交互的完整实现

在这个数字化时代&#xff0c;我们经常需要处理大量的照片和图片文件。今天我将带你一步步实现一个功能丰富的照片桌面程序&#xff0c;让你可以像在真实桌面上摆放照片一样操作数字图片。这个程序使用wxPython构建&#xff0c;支持拖拽、调整大小、删除等交互功能。C:\pythonc…

《sklearn机器学习——模型的持久性》joblib 和 pickle 进行模型保存和加载

模型持久性在 Scikit-learn 中的应用详解 模型持久性的基本概念 在机器学习领域&#xff0c;模型持久性是指将训练好的模型保存到磁盘或数据库中&#xff0c;以便在后续的预测任务中能够直接使用&#xff0c;而无需重新训练模型。这一过程不仅提高了模型的可重用性&#xff0c;…

前端-组件化开发

目录 一.组件化 二.根组件 三.App.vue文件&#xff08;单文件组件&#xff09;的三个组成部分 四.普通组件的注册和使用&#xff1a; 1.普通组件的创建 2.局部注册 3.全局注册 &#x1f9e0; 补充小技巧&#xff1a; &#x1f4a1; 关于组件名&#xff08;第一个参数&…

UNIX/macOS路由表查询原理与实现

&#x1f310; UNIX/macOS路由表查询原理与实现&#x1f4cc; 功能全景图 #mermaid-svg-mz6rxrQ73xinNsqc {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-mz6rxrQ73xinNsqc .error-icon{fill:#552222;}#mermaid-svg…

Python爬虫实战:研究Style sheets模块,构建电商平台笔记本电脑销售数据采集和分析系统

1. 引言 1.1 研究背景 在数字经济时代,互联网蕴含的海量数据已成为企业决策与学术研究的核心资源。网络爬虫技术通过自动化请求、解析网页,能够高效提取公开数据,为市场分析、竞品研究等场景提供基础支撑。Python 凭借其丰富的生态库(如 Requests、BeautifulSoup、Pandas…

lesson55:CSS导航组件全攻略:从基础导航条到动态三级菜单与伸缩菜单实现

目录 一、CSS导航条&#xff1a;构建基础导航系统 1.1 语义化HTML结构 1.2 现代Flexbox布局实现 1.3 核心技术解析 二、三级菜单&#xff1a;构建多层级导航体系 2.1 嵌套HTML结构 2.2 多级菜单CSS实现 2.3 关键技术解析 三、伸缩菜单&#xff1a;实现动态交互导航 3…