Skip to content

Table 表格 - 虚拟滚动

超大数据量场景下,通过虚拟滚动技术只渲染可视区域内的行,大幅提升表格性能。

纵向虚拟滚动

设置 virtual-configenabled: true 即可开启虚拟滚动,配合 height 固定表格高度。默认数据量超过 100 条时自动生效。

纵向虚拟滚动(10,000 条数据)

设置行高

通过 virtual-config.rowHeight 设置虚拟滚动的行高,确保滚动条计算准确。支持设置为固定数值或函数(动态行高)。

自定义行高

冻结列 + 虚拟滚动

虚拟滚动可与固定列 (fixed) 同时使用,确保左右两侧的关键列始终可见。

固定列 + 虚拟滚动

排序与筛选

虚拟滚动与排序、筛选功能完全兼容。排序和筛选在内存中完成,虚拟滚动仅负责渲染优化。

排序 + 筛选 + 虚拟滚动

使用分组表头

虚拟滚动可以与多级表头 (children) 配合使用,支持分组列头的大数据渲染。

分组表头 + 虚拟滚动

百万级数据量

通过虚拟滚动,即使是百万级别的数据量也能保持流畅的滚动体验。

百万级数据

API

VirtualConfig 虚拟滚动配置

通过 virtual-config 属性传入。

属性说明类型默认值
enabled是否启用虚拟滚动booleanfalse
rowHeight行高(固定值或函数)number | ((row, rowIndex) => number)48
buffer缓冲区行数(上下各多渲染的行数)number5
overscan预渲染行数number3
columnVirtual是否启用列虚拟化booleanfalse
columnBuffer列缓冲区数量number3

方法(通过 ref 调用)

方法名说明参数
scrollTo滚动到指定位置({ top?, left?, row?, rowIndex? })
refresh刷新虚拟滚动(数据变化后调用)
doLayout重新计算表格布局

注意事项

  1. 必须设置 height:虚拟滚动需要固定的容器高度来计算可见区域。
  2. 必须设置 row-key:虚拟滚动依赖行唯一标识来追踪渲染。
  3. rowHeight 要准确:虚拟滚动根据行高计算滚动位置和可见范围,设置不准确可能导致滚动条跳动。
  4. 数据量阈值:默认数据量超过 100 条才会真正启用虚拟渲染,少于 100 条时正常渲染。
  5. 兼容性:虚拟滚动与排序、筛选、固定列、分组表头等功能完全兼容。

Released under the MIT License.