好的,我来帮你系统梳理 Element UI 的 el-table
组件,从基础用法、属性、事件到高级功能示例,方便快速掌握。
1️⃣ el-table
组件简介
el-table
是 Element UI 中用于 展示表格数据 的组件,功能强大,可支持分页、排序、筛选、固定列、合并单元格等。
- 核心思想:通过
data
属性绑定数据,通过 el-table-column
定义列。
2️⃣ 基本用法
<template>
<el-table :data="tableData" border style="width: 100%">
<el-table-column prop="date" label="日期" width="180"></el-table-column>
<el-table-column prop="name" label="姓名" width="180"></el-table-column>
<el-table-column prop="address" label="地址"></el-table-column>
</el-table>
</template>
<script>
export default {
data() {
return {
tableData: [
{ date: '2025-09-02', name: '张三', address: '北京市朝阳区' },
{ date: '2025-09-03', name: '李四', address: '上海市浦东新区' }
]
};
}
};
</script>
✅ 说明:
:data
:绑定表格数据
prop
:对应数据字段
label
:表头文字
width
:列宽
border
:显示边框
3️⃣ 常用属性
属性 | 说明 |
---|
data | 表格数据数组 |
border | 是否显示边框 |
stripe | 是否斑马纹 |
size | 表格尺寸 medium / small / mini |
fit | 列宽是否自适应,默认 true |
highlight-current-row | 是否高亮当前行 |
row-key | 行数据的唯一标识,用于优化渲染 |
max-height | 最大高度,超出出现滚动条 |
4️⃣ el-table-column
常用属性
属性 | 说明 |
---|
prop | 数据字段 |
label | 表头文字 |
width | 列宽 |
min-width | 列最小宽度 |
sortable | 是否可排序 |
fixed | 列固定位置 left / right |
align | 对齐方式 left / center / right |
formatter | 自定义列显示格式,函数返回内容 |
show-overflow-tooltip | 内容溢出显示 tooltip |
5️⃣ 事件与方法
事件 | 说明 |
---|
@row-click | 点击行触发 |
@current-change | 当前行变化 |
@selection-change | 多选行变化 |
@sort-change | 排序条件变化 |
@filter-change | 筛选条件变化 |
<el-table :data="tableData" @row-click="handleRowClick">
</el-table>
methods: {
handleRowClick(row) {
console.log('点击行:', row);
}
}
6️⃣ 高级功能示例
6.1 多选
<el-table :data="tableData" @selection-change="handleSelection">
<el-table-column type="selection" width="55"></el-table-column>
<el-table-column prop="name" label="姓名"></el-table-column>
<el-table-column prop="address" label="地址"></el-table-column>
</el-table>
6.2 排序
<el-table :data="tableData">
<el-table-column prop="name" label="姓名" sortable></el-table-column>
<el-table-column prop="date" label="日期" sortable="custom"></el-table-column>
</el-table>
6.3 固定列 + 滚动
<el-table :data="tableData" height="300">
<el-table-column fixed prop="name" label="姓名" width="120"></el-table-column>
<el-table-column prop="address" label="地址"></el-table-column>
</el-table>
6.4 自定义列内容
<el-table-column label="操作">
<template #default="scope">
<el-button @click="editRow(scope.row)" type="primary" size="mini">编辑</el-button>
</template>
</el-table-column>
7️⃣ 总结
- 核心绑定:
data
+ el-table-column
- 常用功能:分页、排序、筛选、多选、固定列
- 事件机制:行点击、当前行变化、选择变化、排序变化
- 扩展能力:支持
slot
自定义列、formatter
自定义显示
- 注意事项:
- 大数据量表格建议配合分页或虚拟滚动
- 对固定列或宽度设置要合理,避免布局错位
发表回复