Skip to content

Virtualized Table 虚拟化表格 ​

在前端开发领域,表格一直都是一个高频出现的组件,尤其是在中后台和数据分析场景。但是,对于 Table V1 来说,当一屏里超过 1000 条数据记录时,就会出现卡顿等性能问题,体验不是很好。

通过虚拟化表格组件,超大数据渲染将不再是一个头疼的问题。

提示

该组件仍在测试中,生产环境使用可能有风险。若您发现了 bug 或问题,请于 GitHub 报告给我们以便修复。同时,有一些 API 并未在此文档中提及,因为部分还没有开发完全,因此我们不在此提及。

即使虚拟化的表格是高效的,但是当数据负载过大时,网络和内存容量也会成为您应用程序的瓶颈。因此请牢记,虚拟化表格永远不是最完美的解决方案,请考虑数据分页、过滤器等优化方案。

ts
import { createApp } from 'vue'
import { ElTableV2, ElAutoResizer } from '@szhn/dh-design-pc'

const app = createApp()
app.use(ElTableV2)
app.use(ElAutoResizer)

基础用法 ​

让我们演示虚拟化表的性能,用 10 列和 1000 行渲染一个基本示例。

固定列 ​

通过列配置中的 fixed: 'left' | 'right' 让列在横向滚动时保持固定。

排序 ​

通过列配置中的 sortable 以及表格的 sort-state 受控实现排序交互。

自定义单元格渲染器 ​

当然,您可以根据您的需要呈现表格单元格。这是如何自定义您的单元格的简单例子。

API ​

TableV2 Attributes ​

属性名说明类型默认值
columns列配置array—
data表格数据array—
width表格宽度number—
height表格高度number—
fixed是否有固定列booleanfalse
row-height行高number50
header-height表头高度number / number[]50
estimated-row-height动态行高下的估算值number—
sort-state受控排序状态object—

TableV2 Events ​

事件名说明
column-sort点击列头排序时触发
row-click行点击时触发
scroll滚动时触发

Column 配置(常用) ​

字段说明
key / dataKey列 key 与对应数据字段
title表头标题
width列宽
fixed是否固定
sortable是否可排序
cellRenderer自定义单元格渲染函数
headerCellRenderer自定义表头渲染函数

更多细节参见 Element Plus Virtualized Table 文档。