虚拟化表格 beta

随着 Web 开发的不断演进,表格组件一直是 Web 应用中最受欢迎的组件之一,尤其是在仪表盘和数据分析领域。对于 Table V1 来说,即使只有 1000 条数据记录,由于性能不佳,使用起来也会非常烦人。

使用虚拟化表格,您可以在眨眼之间渲染大量数据。

提示

此组件 仍在测试中 ,使用风险自负。如果您发现任何错误或问题,请在 GitHub 上报告,以便我们修复。此外,还有一些 API 未在本 文档中提及,其中一些尚未完全开发,因此未在此处提及。

尽管 虚拟化表格效率很高,但当数据负载过大时,您的 网络内存大小 可能会成为您应用的瓶颈。因此,请记住,虚拟化表格绝不是万能的解决方案,请考虑对数据进行分页、添加过滤器等。

基础用法

让我们通过渲染一个包含 10 列和 1000 行的基本示例来演示虚拟化表格的性能。

第 0 行 - 第 0 列
第 0 行 - 第 1 列
第 0 行 - 第 2 列
第 0 行 - 第 3 列
第 0 行 - 第 4 列
第 0 行 - 第 5 列
第 0 行 - 第 6 列
第 0 行 - 第 7 列
第 0 行 - 第 8 列
第 0 行 - 第 9 列
第 1 行 - 第 0 列
第 1 行 - 第 1 列
第 1 行 - 第 2 列
第 1 行 - 第 3 列
第 1 行 - 第 4 列
第 1 行 - 第 5 列
第 1 行 - 第 6 列
第 1 行 - 第 7 列
第 1 行 - 第 8 列
第 1 行 - 第 9 列
第 2 行 - 第 0 列
第 2 行 - 第 1 列
第 2 行 - 第 2 列
第 2 行 - 第 3 列
第 2 行 - 第 4 列
第 2 行 - 第 5 列
第 2 行 - 第 6 列
第 2 行 - 第 7 列
第 2 行 - 第 8 列
第 2 行 - 第 9 列
第 3 行 - 第 0 列
第 3 行 - 第 1 列
第 3 行 - 第 2 列
第 3 行 - 第 3 列
第 3 行 - 第 4 列
第 3 行 - 第 5 列
第 3 行 - 第 6 列
第 3 行 - 第 7 列
第 3 行 - 第 8 列
第 3 行 - 第 9 列
第 4 行 - 第 0 列
第 4 行 - 第 1 列
第 4 行 - 第 2 列
第 4 行 - 第 3 列
第 4 行 - 第 4 列
第 4 行 - 第 5 列
第 4 行 - 第 6 列
第 4 行 - 第 7 列
第 4 行 - 第 8 列
第 4 行 - 第 9 列
第 5 行 - 第 0 列
第 5 行 - 第 1 列
第 5 行 - 第 2 列
第 5 行 - 第 3 列
第 5 行 - 第 4 列
第 5 行 - 第 5 列
第 5 行 - 第 6 列
第 5 行 - 第 7 列
第 5 行 - 第 8 列
第 5 行 - 第 9 列
第 6 行 - 第 0 列
第 6 行 - 第 1 列
第 6 行 - 第 2 列
第 6 行 - 第 3 列
第 6 行 - 第 4 列
第 6 行 - 第 5 列
第 6 行 - 第 6 列
第 6 行 - 第 7 列
第 6 行 - 第 8 列
第 6 行 - 第 9 列
第 7 行 - 第 0 列
第 7 行 - 第 1 列
第 7 行 - 第 2 列
第 7 行 - 第 3 列
第 7 行 - 第 4 列
第 7 行 - 第 5 列
第 7 行 - 第 6 列
第 7 行 - 第 7 列
第 7 行 - 第 8 列
第 7 行 - 第 9 列
第 8 行 - 第 0 列
第 8 行 - 第 1 列
第 8 行 - 第 2 列
第 8 行 - 第 3 列
第 8 行 - 第 4 列
第 8 行 - 第 5 列
第 8 行 - 第 6 列
第 8 行 - 第 7 列
第 8 行 - 第 8 列
第 8 行 - 第 9 列
第 0 列
第 1 列
第 2 列
第 3 列
第 4 列
第 5 列
第 6 列
第 7 列
第 8 列
第 9 列

自动调整尺寸

当您不想手动将 `width` 和 `height` 属性传递给表格时,您可以用 AutoResizer 组件包裹表格。它将自动为您更新宽度和高度。

调整浏览器大小以查看其工作方式。

提示

请确保 `AutoResizer` 的父节点 具有固定的高度,因为它的默认高度值为 100%。或者,您可以通过将 `style` 属性传递给 `AutoResizer` 来定义它。

第 0 行 - 第 0 列
第 0 行 - 第 1 列
第 0 行 - 第 2 列
第 0 行 - 第 3 列
第 0 行 - 第 4 列
第 0 行 - 第 5 列
第 0 行 - 第 6 列
第 0 行 - 第 7 列
第 0 行 - 第 8 列
第 0 行 - 第 9 列
第 1 行 - 第 0 列
第 1 行 - 第 1 列
第 1 行 - 第 2 列
第 1 行 - 第 3 列
第 1 行 - 第 4 列
第 1 行 - 第 5 列
第 1 行 - 第 6 列
第 1 行 - 第 7 列
第 1 行 - 第 8 列
第 1 行 - 第 9 列
第 2 行 - 第 0 列
第 2 行 - 第 1 列
第 2 行 - 第 2 列
第 2 行 - 第 3 列
第 2 行 - 第 4 列
第 2 行 - 第 5 列
第 2 行 - 第 6 列
第 2 行 - 第 7 列
第 2 行 - 第 8 列
第 2 行 - 第 9 列

自定义单元格渲染器

当然,您可以根据需要渲染表格单元格。这里有一个如何自定义单元格的简单示例。

汤姆
汤姆
汤姆
汤姆
汤姆
汤姆
汤姆
汤姆
汤姆
名称
操作
2020/10/01
2020/10/01
2020/10/01
2020/10/01
2020/10/01
2020/10/01
2020/10/01
2020/10/01
2020/10/01
日期

带选择项的表格

使用自定义单元格渲染器为您的表格提供选择功能。

第 0 行 - 第 1 列
第 0 行 - 第 2 列
第 0 行 - 第 3 列
第 0 行 - 第 4 列
第 0 行 - 第 5 列
第 0 行 - 第 6 列
第 0 行 - 第 7 列
第 0 行 - 第 8 列
第 0 行 - 第 9 列
第 0 行 - 第 10 列
第 1 行 - 第 1 列
第 1 行 - 第 2 列
第 1 行 - 第 3 列
第 1 行 - 第 4 列
第 1 行 - 第 5 列
第 1 行 - 第 6 列
第 1 行 - 第 7 列
第 1 行 - 第 8 列
第 1 行 - 第 9 列
第 1 行 - 第 10 列
第 2 行 - 第 1 列
第 2 行 - 第 2 列
第 2 行 - 第 3 列
第 2 行 - 第 4 列
第 2 行 - 第 5 列
第 2 行 - 第 6 列
第 2 行 - 第 7 列
第 2 行 - 第 8 列
第 2 行 - 第 9 列
第 2 行 - 第 10 列

行内编辑

正如我们上面演示的选择功能一样,您可以使用相同的方法启用行内编辑。

第 0 行 - 第 0 列
第 0 行 - 第 1 列
第 0 行 - 第 2 列
第 0 行 - 第 3 列
第 0 行 - 第 4 列
第 0 行 - 第 5 列
第 0 行 - 第 6 列
第 0 行 - 第 7 列
第 0 行 - 第 8 列
第 0 行 - 第 9 列
第 1 行 - 第 0 列
第 1 行 - 第 1 列
第 1 行 - 第 2 列
第 1 行 - 第 3 列
第 1 行 - 第 4 列
第 1 行 - 第 5 列
第 1 行 - 第 6 列
第 1 行 - 第 7 列
第 1 行 - 第 8 列
第 1 行 - 第 9 列
第 2 行 - 第 0 列
第 2 行 - 第 1 列
第 2 行 - 第 2 列
第 2 行 - 第 3 列
第 2 行 - 第 4 列
第 2 行 - 第 5 列
第 2 行 - 第 6 列
第 2 行 - 第 7 列
第 2 行 - 第 8 列
第 2 行 - 第 9 列

带状态的表格

您可以高亮显示您的表格内容,以区分“成功、信息、警告、危险”和其他状态。

要自定义行的外观,请使用 `row-class-name` 属性。例如,每第 10 行使用 `bg-blue-200` 类高亮显示,每第 5 行使用 `bg-red-100` 类高亮显示。

汤姆
汤姆
汤姆
汤姆
汤姆
汤姆
汤姆
汤姆
汤姆
名称
操作
2020/10/01
2020/10/01
2020/10/01
2020/10/01
2020/10/01
2020/10/01
2020/10/01
2020/10/01
2020/10/01
日期

带置顶行的表格

您可以让一些行固定在表格顶部,这可以通过使用 `fixed-data` 属性轻松实现。

您可以根据滚动事件动态设置置顶行,如此示例所示。

第 1 行 - 第 0 列
第 1 行 - 第 1 列
第 1 行 - 第 2 列
第 1 行 - 第 3 列
第 1 行 - 第 4 列
第 1 行 - 第 5 列
第 1 行 - 第 6 列
第 1 行 - 第 7 列
第 1 行 - 第 8 列
第 1 行 - 第 9 列
第 2 行 - 第 0 列
第 2 行 - 第 1 列
第 2 行 - 第 2 列
第 2 行 - 第 3 列
第 2 行 - 第 4 列
第 2 行 - 第 5 列
第 2 行 - 第 6 列
第 2 行 - 第 7 列
第 2 行 - 第 8 列
第 2 行 - 第 9 列
第 3 行 - 第 0 列
第 3 行 - 第 1 列
第 3 行 - 第 2 列
第 3 行 - 第 3 列
第 3 行 - 第 4 列
第 3 行 - 第 5 列
第 3 行 - 第 6 列
第 3 行 - 第 7 列
第 3 行 - 第 8 列
第 3 行 - 第 9 列
第 4 行 - 第 0 列
第 4 行 - 第 1 列
第 4 行 - 第 2 列
第 4 行 - 第 3 列
第 4 行 - 第 4 列
第 4 行 - 第 5 列
第 4 行 - 第 6 列
第 4 行 - 第 7 列
第 4 行 - 第 8 列
第 4 行 - 第 9 列
第 5 行 - 第 0 列
第 5 行 - 第 1 列
第 5 行 - 第 2 列
第 5 行 - 第 3 列
第 5 行 - 第 4 列
第 5 行 - 第 5 列
第 5 行 - 第 6 列
第 5 行 - 第 7 列
第 5 行 - 第 8 列
第 5 行 - 第 9 列
第 6 行 - 第 0 列
第 6 行 - 第 1 列
第 6 行 - 第 2 列
第 6 行 - 第 3 列
第 6 行 - 第 4 列
第 6 行 - 第 5 列
第 6 行 - 第 6 列
第 6 行 - 第 7 列
第 6 行 - 第 8 列
第 6 行 - 第 9 列
第 7 行 - 第 0 列
第 7 行 - 第 1 列
第 7 行 - 第 2 列
第 7 行 - 第 3 列
第 7 行 - 第 4 列
第 7 行 - 第 5 列
第 7 行 - 第 6 列
第 7 行 - 第 7 列
第 7 行 - 第 8 列
第 7 行 - 第 9 列
第 8 行 - 第 0 列
第 8 行 - 第 1 列
第 8 行 - 第 2 列
第 8 行 - 第 3 列
第 8 行 - 第 4 列
第 8 行 - 第 5 列
第 8 行 - 第 6 列
第 8 行 - 第 7 列
第 8 行 - 第 8 列
第 8 行 - 第 9 列
第 0 列
第 1 列
第 2 列
第 3 列
第 4 列
第 5 列
第 6 列
第 7 列
第 8 列
第 9 列
第 0 行 - 第 0 列
第 0 行 - 第 1 列
第 0 行 - 第 2 列
第 0 行 - 第 3 列
第 0 行 - 第 4 列
第 0 行 - 第 5 列
第 0 行 - 第 6 列
第 0 行 - 第 7 列
第 0 行 - 第 8 列
第 0 行 - 第 9 列

带固定列的表格

如果出于某种原因,您希望列固定在左侧或右侧,可以通过向表格添加特殊属性来实现。

您可以将列的属性 `fixed` 设置为 `true`(表示 `FixedDir.LEFT`)或 `FixedDir.LEFT` 或 `FixedDir.RIGHT`。

第 0 行 - 第 2 列
第 0 行 - 第 3 列
第 0 行 - 第 4 列
第 0 行 - 第 5 列
第 0 行 - 第 6 列
第 0 行 - 第 7 列
第 0 行 - 第 8 列
第 1 行 - 第 2 列
第 1 行 - 第 3 列
第 1 行 - 第 4 列
第 1 行 - 第 5 列
第 1 行 - 第 6 列
第 1 行 - 第 7 列
第 1 行 - 第 8 列
第 2 行 - 第 2 列
第 2 行 - 第 3 列
第 2 行 - 第 4 列
第 2 行 - 第 5 列
第 2 行 - 第 6 列
第 2 行 - 第 7 列
第 2 行 - 第 8 列
第 3 行 - 第 2 列
第 3 行 - 第 3 列
第 3 行 - 第 4 列
第 3 行 - 第 5 列
第 3 行 - 第 6 列
第 3 行 - 第 7 列
第 3 行 - 第 8 列
第 4 行 - 第 2 列
第 4 行 - 第 3 列
第 4 行 - 第 4 列
第 4 行 - 第 5 列
第 4 行 - 第 6 列
第 4 行 - 第 7 列
第 4 行 - 第 8 列
第 5 行 - 第 2 列
第 5 行 - 第 3 列
第 5 行 - 第 4 列
第 5 行 - 第 5 列
第 5 行 - 第 6 列
第 5 行 - 第 7 列
第 5 行 - 第 8 列
第 6 行 - 第 2 列
第 6 行 - 第 3 列
第 6 行 - 第 4 列
第 6 行 - 第 5 列
第 6 行 - 第 6 列
第 6 行 - 第 7 列
第 6 行 - 第 8 列
第 7 行 - 第 2 列
第 7 行 - 第 3 列
第 7 行 - 第 4 列
第 7 行 - 第 5 列
第 7 行 - 第 6 列
第 7 行 - 第 7 列
第 7 行 - 第 8 列
第 8 行 - 第 2 列
第 8 行 - 第 3 列
第 8 行 - 第 4 列
第 8 行 - 第 5 列
第 8 行 - 第 6 列
第 8 行 - 第 7 列
第 8 行 - 第 8 列
第 2 列
第 3 列
第 4 列
第 5 列
第 6 列
第 7 列
第 8 列
第 0 行 - 第 0 列
第 0 行 - 第 1 列
第 1 行 - 第 0 列
第 1 行 - 第 1 列
第 2 行 - 第 0 列
第 2 行 - 第 1 列
第 3 行 - 第 0 列
第 3 行 - 第 1 列
第 4 行 - 第 0 列
第 4 行 - 第 1 列
第 5 行 - 第 0 列
第 5 行 - 第 1 列
第 6 行 - 第 0 列
第 6 行 - 第 1 列
第 7 行 - 第 0 列
第 7 行 - 第 1 列
第 8 行 - 第 0 列
第 8 行 - 第 1 列
第 0 列
第 1 列
第 0 行 - 第 9 列
第 1 行 - 第 9 列
第 2 行 - 第 9 列
第 3 行 - 第 9 列
第 4 行 - 第 9 列
第 5 行 - 第 9 列
第 6 行 - 第 9 列
第 7 行 - 第 9 列
第 8 行 - 第 9 列
第 9 列

分组表头

通过自定义您的表头渲染器,您可以如此示例所示对表头进行分组。

提示

在这种情况下,我们使用了 `JSX` 功能,演练场中不支持。您可以在本地环境或在线 IDE(如 `codesandbox`)中尝试。

建议您使用 JSX 编写表格组件,因为它包含 VNode 操作。

第 0 行 - 第 3 列
第 0 行 - 第 4 列
第 0 行 - 第 5 列
第 0 行 - 第 6 列
第 0 行 - 第 7 列
第 0 行 - 第 8 列
第 0 行 - 第 9 列
第 0 行 - 第 10 列
第 0 行 - 第 11 列
第 0 行 - 第 12 列
第 1 行 - 第 3 列
第 1 行 - 第 4 列
第 1 行 - 第 5 列
第 1 行 - 第 6 列
第 1 行 - 第 7 列
第 1 行 - 第 8 列
第 1 行 - 第 9 列
第 1 行 - 第 10 列
第 1 行 - 第 11 列
第 1 行 - 第 12 列
第 2 行 - 第 3 列
第 2 行 - 第 4 列
第 2 行 - 第 5 列
第 2 行 - 第 6 列
第 2 行 - 第 7 列
第 2 行 - 第 8 列
第 2 行 - 第 9 列
第 2 行 - 第 10 列
第 2 行 - 第 11 列
第 2 行 - 第 12 列
第 3 行 - 第 3 列
第 3 行 - 第 4 列
第 3 行 - 第 5 列
第 3 行 - 第 6 列
第 3 行 - 第 7 列
第 3 行 - 第 8 列
第 3 行 - 第 9 列
第 3 行 - 第 10 列
第 3 行 - 第 11 列
第 3 行 - 第 12 列
第 4 行 - 第 3 列
第 4 行 - 第 4 列
第 4 行 - 第 5 列
第 4 行 - 第 6 列
第 4 行 - 第 7 列
第 4 行 - 第 8 列
第 4 行 - 第 9 列
第 4 行 - 第 10 列
第 4 行 - 第 11 列
第 4 行 - 第 12 列
第 5 行 - 第 3 列
第 5 行 - 第 4 列
第 5 行 - 第 5 列
第 5 行 - 第 6 列
第 5 行 - 第 7 列
第 5 行 - 第 8 列
第 5 行 - 第 9 列
第 5 行 - 第 10 列
第 5 行 - 第 11 列
第 5 行 - 第 12 列
第 6 行 - 第 3 列
第 6 行 - 第 4 列
第 6 行 - 第 5 列
第 6 行 - 第 6 列
第 6 行 - 第 7 列
第 6 行 - 第 8 列
第 6 行 - 第 9 列
第 6 行 - 第 10 列
第 6 行 - 第 11 列
第 6 行 - 第 12 列
第 7 行 - 第 3 列
第 7 行 - 第 4 列
第 7 行 - 第 5 列
第 7 行 - 第 6 列
第 7 行 - 第 7 列
第 7 行 - 第 8 列
第 7 行 - 第 9 列
第 7 行 - 第 10 列
第 7 行 - 第 11 列
第 7 行 - 第 12 列
分组宽度 400
分组宽度 400
分组宽度 200
分组宽度 200
分组宽度 200
分组宽度 200
分组宽度 200
分组宽度 200
第 3 列
第 4 列
第 5 列
第 6 列
第 7 列
第 8 列
第 9 列
第 10 列
第 11 列
第 12 列
第 0 行 - 第 0 列
第 0 行 - 第 1 列
第 0 行 - 第 2 列
第 1 行 - 第 0 列
第 1 行 - 第 1 列
第 1 行 - 第 2 列
第 2 行 - 第 0 列
第 2 行 - 第 1 列
第 2 行 - 第 2 列
第 3 行 - 第 0 列
第 3 行 - 第 1 列
第 3 行 - 第 2 列
第 4 行 - 第 0 列
第 4 行 - 第 1 列
第 4 行 - 第 2 列
第 5 行 - 第 0 列
第 5 行 - 第 1 列
第 5 行 - 第 2 列
第 6 行 - 第 0 列
第 6 行 - 第 1 列
第 6 行 - 第 2 列
第 7 行 - 第 0 列
第 7 行 - 第 1 列
第 7 行 - 第 2 列
分组宽度 300
分组宽度 200
分组宽度 100
第 0 列
第 1 列
第 2 列
第 0 行 - 第 13 列
第 0 行 - 第 14 列
第 1 行 - 第 13 列
第 1 行 - 第 14 列
第 2 行 - 第 13 列
第 2 行 - 第 14 列
第 3 行 - 第 13 列
第 3 行 - 第 14 列
第 4 行 - 第 13 列
第 4 行 - 第 14 列
第 5 行 - 第 13 列
第 5 行 - 第 14 列
第 6 行 - 第 13 列
第 6 行 - 第 14 列
第 7 行 - 第 13 列
第 7 行 - 第 14 列
分组宽度 200
分组宽度 200
第 13 列
第 14 列

筛选

虚拟化表格提供了自定义表头渲染器,用于创建自定义表头。然后我们可以利用这些来渲染筛选器。

第 0 行 - 第 2 列
第 0 行 - 第 3 列
第 0 行 - 第 4 列
第 0 行 - 第 5 列
第 0 行 - 第 6 列
第 0 行 - 第 7 列
第 0 行 - 第 8 列
第 0 行 - 第 9 列
第 1 行 - 第 2 列
第 1 行 - 第 3 列
第 1 行 - 第 4 列
第 1 行 - 第 5 列
第 1 行 - 第 6 列
第 1 行 - 第 7 列
第 1 行 - 第 8 列
第 1 行 - 第 9 列
第 2 行 - 第 2 列
第 2 行 - 第 3 列
第 2 行 - 第 4 列
第 2 行 - 第 5 列
第 2 行 - 第 6 列
第 2 行 - 第 7 列
第 2 行 - 第 8 列
第 2 行 - 第 9 列
第 3 行 - 第 2 列
第 3 行 - 第 3 列
第 3 行 - 第 4 列
第 3 行 - 第 5 列
第 3 行 - 第 6 列
第 3 行 - 第 7 列
第 3 行 - 第 8 列
第 3 行 - 第 9 列
第 4 行 - 第 2 列
第 4 行 - 第 3 列
第 4 行 - 第 4 列
第 4 行 - 第 5 列
第 4 行 - 第 6 列
第 4 行 - 第 7 列
第 4 行 - 第 8 列
第 4 行 - 第 9 列
第 5 行 - 第 2 列
第 5 行 - 第 3 列
第 5 行 - 第 4 列
第 5 行 - 第 5 列
第 5 行 - 第 6 列
第 5 行 - 第 7 列
第 5 行 - 第 8 列
第 5 行 - 第 9 列
第 6 行 - 第 2 列
第 6 行 - 第 3 列
第 6 行 - 第 4 列
第 6 行 - 第 5 列
第 6 行 - 第 6 列
第 6 行 - 第 7 列
第 6 行 - 第 8 列
第 6 行 - 第 9 列
第 7 行 - 第 2 列
第 7 行 - 第 3 列
第 7 行 - 第 4 列
第 7 行 - 第 5 列
第 7 行 - 第 6 列
第 7 行 - 第 7 列
第 7 行 - 第 8 列
第 7 行 - 第 9 列
第 8 行 - 第 2 列
第 8 行 - 第 3 列
第 8 行 - 第 4 列
第 8 行 - 第 5 列
第 8 行 - 第 6 列
第 8 行 - 第 7 列
第 8 行 - 第 8 列
第 8 行 - 第 9 列
第 2 列
第 3 列
第 4 列
第 5 列
第 6 列
第 7 列
第 8 列
第 9 列
第 0 行 - 第 0 列
第 0 行 - 第 1 列
第 1 行 - 第 0 列
第 1 行 - 第 1 列
第 2 行 - 第 0 列
第 2 行 - 第 1 列
第 3 行 - 第 0 列
第 3 行 - 第 1 列
第 4 行 - 第 0 列
第 4 行 - 第 1 列
第 5 行 - 第 0 列
第 5 行 - 第 1 列
第 6 行 - 第 0 列
第 6 行 - 第 1 列
第 7 行 - 第 0 列
第 7 行 - 第 1 列
第 8 行 - 第 0 列
第 8 行 - 第 1 列
第 0 列
第 1 列

可排序

您可以使用排序状态对表格进行排序。

第 0 行 - 第 0 列
第 0 行 - 第 1 列
第 0 行 - 第 2 列
第 0 行 - 第 3 列
第 0 行 - 第 4 列
第 0 行 - 第 5 列
第 0 行 - 第 6 列
第 0 行 - 第 7 列
第 0 行 - 第 8 列
第 0 行 - 第 9 列
第 1 行 - 第 0 列
第 1 行 - 第 1 列
第 1 行 - 第 2 列
第 1 行 - 第 3 列
第 1 行 - 第 4 列
第 1 行 - 第 5 列
第 1 行 - 第 6 列
第 1 行 - 第 7 列
第 1 行 - 第 8 列
第 1 行 - 第 9 列
第 2 行 - 第 0 列
第 2 行 - 第 1 列
第 2 行 - 第 2 列
第 2 行 - 第 3 列
第 2 行 - 第 4 列
第 2 行 - 第 5 列
第 2 行 - 第 6 列
第 2 行 - 第 7 列
第 2 行 - 第 8 列
第 2 行 - 第 9 列
第 3 行 - 第 0 列
第 3 行 - 第 1 列
第 3 行 - 第 2 列
第 3 行 - 第 3 列
第 3 行 - 第 4 列
第 3 行 - 第 5 列
第 3 行 - 第 6 列
第 3 行 - 第 7 列
第 3 行 - 第 8 列
第 3 行 - 第 9 列
第 4 行 - 第 0 列
第 4 行 - 第 1 列
第 4 行 - 第 2 列
第 4 行 - 第 3 列
第 4 行 - 第 4 列
第 4 行 - 第 5 列
第 4 行 - 第 6 列
第 4 行 - 第 7 列
第 4 行 - 第 8 列
第 4 行 - 第 9 列
第 5 行 - 第 0 列
第 5 行 - 第 1 列
第 5 行 - 第 2 列
第 5 行 - 第 3 列
第 5 行 - 第 4 列
第 5 行 - 第 5 列
第 5 行 - 第 6 列
第 5 行 - 第 7 列
第 5 行 - 第 8 列
第 5 行 - 第 9 列
第 6 行 - 第 0 列
第 6 行 - 第 1 列
第 6 行 - 第 2 列
第 6 行 - 第 3 列
第 6 行 - 第 4 列
第 6 行 - 第 5 列
第 6 行 - 第 6 列
第 6 行 - 第 7 列
第 6 行 - 第 8 列
第 6 行 - 第 9 列
第 7 行 - 第 0 列
第 7 行 - 第 1 列
第 7 行 - 第 2 列
第 7 行 - 第 3 列
第 7 行 - 第 4 列
第 7 行 - 第 5 列
第 7 行 - 第 6 列
第 7 行 - 第 7 列
第 7 行 - 第 8 列
第 7 行 - 第 9 列
第 8 行 - 第 0 列
第 8 行 - 第 1 列
第 8 行 - 第 2 列
第 8 行 - 第 3 列
第 8 行 - 第 4 列
第 8 行 - 第 5 列
第 8 行 - 第 6 列
第 8 行 - 第 7 列
第 8 行 - 第 8 列
第 8 行 - 第 9 列
第 0 列
第 1 列
第 2 列
第 3 列
第 4 列
第 5 列
第 6 列
第 7 列
第 8 列
第 9 列

受控排序

您可以根据需要定义多个可排序的列。请记住,如果您定义了多个可排序的列,UI 可能会让您的用户感到困惑,因为不清楚当前正在对哪一列进行排序。

第 0 行 - 第 0 列
第 0 行 - 第 1 列
第 0 行 - 第 2 列
第 0 行 - 第 3 列
第 0 行 - 第 4 列
第 0 行 - 第 5 列
第 0 行 - 第 6 列
第 0 行 - 第 7 列
第 0 行 - 第 8 列
第 0 行 - 第 9 列
第 1 行 - 第 0 列
第 1 行 - 第 1 列
第 1 行 - 第 2 列
第 1 行 - 第 3 列
第 1 行 - 第 4 列
第 1 行 - 第 5 列
第 1 行 - 第 6 列
第 1 行 - 第 7 列
第 1 行 - 第 8 列
第 1 行 - 第 9 列
第 2 行 - 第 0 列
第 2 行 - 第 1 列
第 2 行 - 第 2 列
第 2 行 - 第 3 列
第 2 行 - 第 4 列
第 2 行 - 第 5 列
第 2 行 - 第 6 列
第 2 行 - 第 7 列
第 2 行 - 第 8 列
第 2 行 - 第 9 列
第 3 行 - 第 0 列
第 3 行 - 第 1 列
第 3 行 - 第 2 列
第 3 行 - 第 3 列
第 3 行 - 第 4 列
第 3 行 - 第 5 列
第 3 行 - 第 6 列
第 3 行 - 第 7 列
第 3 行 - 第 8 列
第 3 行 - 第 9 列
第 4 行 - 第 0 列
第 4 行 - 第 1 列
第 4 行 - 第 2 列
第 4 行 - 第 3 列
第 4 行 - 第 4 列
第 4 行 - 第 5 列
第 4 行 - 第 6 列
第 4 行 - 第 7 列
第 4 行 - 第 8 列
第 4 行 - 第 9 列
第 5 行 - 第 0 列
第 5 行 - 第 1 列
第 5 行 - 第 2 列
第 5 行 - 第 3 列
第 5 行 - 第 4 列
第 5 行 - 第 5 列
第 5 行 - 第 6 列
第 5 行 - 第 7 列
第 5 行 - 第 8 列
第 5 行 - 第 9 列
第 6 行 - 第 0 列
第 6 行 - 第 1 列
第 6 行 - 第 2 列
第 6 行 - 第 3 列
第 6 行 - 第 4 列
第 6 行 - 第 5 列
第 6 行 - 第 6 列
第 6 行 - 第 7 列
第 6 行 - 第 8 列
第 6 行 - 第 9 列
第 7 行 - 第 0 列
第 7 行 - 第 1 列
第 7 行 - 第 2 列
第 7 行 - 第 3 列
第 7 行 - 第 4 列
第 7 行 - 第 5 列
第 7 行 - 第 6 列
第 7 行 - 第 7 列
第 7 行 - 第 8 列
第 7 行 - 第 9 列
第 8 行 - 第 0 列
第 8 行 - 第 1 列
第 8 行 - 第 2 列
第 8 行 - 第 3 列
第 8 行 - 第 4 列
第 8 行 - 第 5 列
第 8 行 - 第 6 列
第 8 行 - 第 7 列
第 8 行 - 第 8 列
第 8 行 - 第 9 列
第 0 列
第 1 列
第 2 列
第 3 列
第 4 列
第 5 列
第 6 列
第 7 列
第 8 列
第 9 列

十字悬停

在处理一个大列表时,很容易忘记当前正在访问的行和列。在这种情况下,使用此功能会非常有帮助。

1
第 0 行 - 第 1 列
第 0 行 - 第 2 列
第 0 行 - 第 3 列
第 0 行 - 第 4 列
第 0 行 - 第 5 列
第 0 行 - 第 6 列
第 0 行 - 第 7 列
第 0 行 - 第 8 列
第 0 行 - 第 9 列
第 0 行 - 第 10 列
2
第 1 行 - 第 1 列
第 1 行 - 第 2 列
第 1 行 - 第 3 列
第 1 行 - 第 4 列
第 1 行 - 第 5 列
第 1 行 - 第 6 列
第 1 行 - 第 7 列
第 1 行 - 第 8 列
第 1 行 - 第 9 列
第 1 行 - 第 10 列
3
第 2 行 - 第 1 列
第 2 行 - 第 2 列
第 2 行 - 第 3 列
第 2 行 - 第 4 列
第 2 行 - 第 5 列
第 2 行 - 第 6 列
第 2 行 - 第 7 列
第 2 行 - 第 8 列
第 2 行 - 第 9 列
第 2 行 - 第 10 列

列合并

虚拟化表格不使用内置的 `table` 元素,因此 `colspan` 和 `rowspan` 的行为与 TableV1 有些不同。但是,通过自定义行渲染器,仍然可以实现这些功能。在本节中,我们将演示如何实现这一点。

第 0 行 - 第 0 列
第 0 行 - 第 1 列
第 0 行 - 第 2 列
第 0 行 - 第 3 列
第 0 行 - 第 4 列
第 0 行 - 第 5 列
第 0 行 - 第 6 列
第 0 行 - 第 7 列
第 0 行 - 第 8 列
第 0 行 - 第 9 列
第 1 行 - 第 0 列
第 1 行 - 第 1 列
第 1 行 - 第 3 列
第 1 行 - 第 4 列
第 1 行 - 第 5 列
第 1 行 - 第 6 列
第 1 行 - 第 7 列
第 1 行 - 第 8 列
第 1 行 - 第 9 列
第 2 行 - 第 0 列
第 2 行 - 第 1 列
第 2 行 - 第 4 列
第 2 行 - 第 5 列
第 2 行 - 第 6 列
第 2 行 - 第 7 列
第 2 行 - 第 8 列
第 2 行 - 第 9 列
第 3 行 - 第 0 列
第 3 行 - 第 1 列
第 3 行 - 第 5 列
第 3 行 - 第 6 列
第 3 行 - 第 7 列
第 3 行 - 第 8 列
第 3 行 - 第 9 列
第 4 行 - 第 0 列
第 4 行 - 第 1 列
第 4 行 - 第 2 列
第 4 行 - 第 3 列
第 4 行 - 第 4 列
第 4 行 - 第 5 列
第 4 行 - 第 6 列
第 4 行 - 第 7 列
第 4 行 - 第 8 列
第 4 行 - 第 9 列
第 5 行 - 第 0 列
第 5 行 - 第 1 列
第 5 行 - 第 3 列
第 5 行 - 第 4 列
第 5 行 - 第 5 列
第 5 行 - 第 6 列
第 5 行 - 第 7 列
第 5 行 - 第 8 列
第 5 行 - 第 9 列
第 6 行 - 第 0 列
第 6 行 - 第 1 列
第 6 行 - 第 4 列
第 6 行 - 第 5 列
第 6 行 - 第 6 列
第 6 行 - 第 7 列
第 6 行 - 第 8 列
第 6 行 - 第 9 列
第 7 行 - 第 0 列
第 7 行 - 第 1 列
第 7 行 - 第 5 列
第 7 行 - 第 6 列
第 7 行 - 第 7 列
第 7 行 - 第 8 列
第 7 行 - 第 9 列
第 8 行 - 第 0 列
第 8 行 - 第 1 列
第 8 行 - 第 2 列
第 8 行 - 第 3 列
第 8 行 - 第 4 列
第 8 行 - 第 5 列
第 8 行 - 第 6 列
第 8 行 - 第 7 列
第 8 行 - 第 8 列
第 8 行 - 第 9 列
第 0 列
第 1 列
第 2 列
第 3 列
第 4 列
第 5 列
第 6 列
第 7 列
第 8 列
第 9 列

行合并

既然我们已经介绍了 列合并,值得注意的是我们也有行合并。它与列合并有点不同,但思想基本相同。

第 0 行 - 第 0 列
第 0 行 - 第 1 列
第 0 行 - 第 2 列
第 0 行 - 第 3 列
第 0 行 - 第 4 列
第 0 行 - 第 5 列
第 0 行 - 第 6 列
第 0 行 - 第 7 列
第 0 行 - 第 8 列
第 0 行 - 第 9 列
第 1 行 - 第 0 列
第 1 行 - 第 1 列
第 1 行 - 第 2 列
第 1 行 - 第 3 列
第 1 行 - 第 4 列
第 1 行 - 第 5 列
第 1 行 - 第 6 列
第 1 行 - 第 7 列
第 1 行 - 第 8 列
第 1 行 - 第 9 列
第 2 行 - 第 0 列
第 2 行 - 第 1 列
第 2 行 - 第 2 列
第 2 行 - 第 3 列
第 2 行 - 第 4 列
第 2 行 - 第 5 列
第 2 行 - 第 6 列
第 2 行 - 第 7 列
第 2 行 - 第 8 列
第 2 行 - 第 9 列
第 3 行 - 第 0 列
第 3 行 - 第 1 列
第 3 行 - 第 2 列
第 3 行 - 第 3 列
第 3 行 - 第 4 列
第 3 行 - 第 5 列
第 3 行 - 第 6 列
第 3 行 - 第 7 列
第 3 行 - 第 8 列
第 3 行 - 第 9 列
第 4 行 - 第 0 列
第 4 行 - 第 1 列
第 4 行 - 第 2 列
第 4 行 - 第 3 列
第 4 行 - 第 4 列
第 4 行 - 第 5 列
第 4 行 - 第 6 列
第 4 行 - 第 7 列
第 4 行 - 第 8 列
第 4 行 - 第 9 列
第 5 行 - 第 0 列
第 5 行 - 第 1 列
第 5 行 - 第 2 列
第 5 行 - 第 3 列
第 5 行 - 第 4 列
第 5 行 - 第 5 列
第 5 行 - 第 6 列
第 5 行 - 第 7 列
第 5 行 - 第 8 列
第 5 行 - 第 9 列
第 6 行 - 第 0 列
第 6 行 - 第 1 列
第 6 行 - 第 2 列
第 6 行 - 第 3 列
第 6 行 - 第 4 列
第 6 行 - 第 5 列
第 6 行 - 第 6 列
第 6 行 - 第 7 列
第 6 行 - 第 8 列
第 6 行 - 第 9 列
第 7 行 - 第 0 列
第 7 行 - 第 1 列
第 7 行 - 第 2 列
第 7 行 - 第 3 列
第 7 行 - 第 4 列
第 7 行 - 第 5 列
第 7 行 - 第 6 列
第 7 行 - 第 7 列
第 7 行 - 第 8 列
第 7 行 - 第 9 列
第 8 行 - 第 0 列
第 8 行 - 第 1 列
第 8 行 - 第 2 列
第 8 行 - 第 3 列
第 8 行 - 第 4 列
第 8 行 - 第 5 列
第 8 行 - 第 6 列
第 8 行 - 第 7 列
第 8 行 - 第 8 列
第 8 行 - 第 9 列
第 0 列
第 1 列
第 2 列
第 3 列
第 4 列
第 5 列
第 6 列
第 7 列
第 8 列
第 9 列

行合并和列合并结合

我们可以将行合并和列合并结合起来,以满足您的业务目标!

第 0 行 - 第 0 列
第 0 行 - 第 1 列
第 0 行 - 第 2 列
第 0 行 - 第 3 列
第 0 行 - 第 4 列
第 0 行 - 第 5 列
第 0 行 - 第 6 列
第 0 行 - 第 7 列
第 0 行 - 第 8 列
第 0 行 - 第 9 列
第 1 行 - 第 1 列
第 1 行 - 第 3 列
第 1 行 - 第 4 列
第 1 行 - 第 5 列
第 1 行 - 第 6 列
第 1 行 - 第 7 列
第 1 行 - 第 8 列
第 1 行 - 第 9 列
第 2 行 - 第 0 列
第 2 行 - 第 1 列
第 2 行 - 第 4 列
第 2 行 - 第 5 列
第 2 行 - 第 6 列
第 2 行 - 第 7 列
第 2 行 - 第 8 列
第 2 行 - 第 9 列
第 3 行 - 第 1 列
第 3 行 - 第 5 列
第 3 行 - 第 6 列
第 3 行 - 第 7 列
第 3 行 - 第 8 列
第 3 行 - 第 9 列
第 4 行 - 第 0 列
第 4 行 - 第 1 列
第 4 行 - 第 2 列
第 4 行 - 第 3 列
第 4 行 - 第 4 列
第 4 行 - 第 5 列
第 4 行 - 第 6 列
第 4 行 - 第 7 列
第 4 行 - 第 8 列
第 4 行 - 第 9 列
第 5 行 - 第 1 列
第 5 行 - 第 3 列
第 5 行 - 第 4 列
第 5 行 - 第 5 列
第 5 行 - 第 6 列
第 5 行 - 第 7 列
第 5 行 - 第 8 列
第 5 行 - 第 9 列
第 6 行 - 第 0 列
第 6 行 - 第 1 列
第 6 行 - 第 4 列
第 6 行 - 第 5 列
第 6 行 - 第 6 列
第 6 行 - 第 7 列
第 6 行 - 第 8 列
第 6 行 - 第 9 列
第 7 行 - 第 1 列
第 7 行 - 第 5 列
第 7 行 - 第 6 列
第 7 行 - 第 7 列
第 7 行 - 第 8 列
第 7 行 - 第 9 列
第 8 行 - 第 0 列
第 8 行 - 第 1 列
第 8 行 - 第 2 列
第 8 行 - 第 3 列
第 8 行 - 第 4 列
第 8 行 - 第 5 列
第 8 行 - 第 6 列
第 8 行 - 第 7 列
第 8 行 - 第 8 列
第 8 行 - 第 9 列
第 0 列
第 1 列
第 2 列
第 3 列
第 4 列
第 5 列
第 6 列
第 7 列
第 8 列
第 9 列

树形数据

虚拟表格还可以以树状结构渲染数据。通过单击箭头图标,您可以展开或折叠树节点。

第 0 行 - 第 2 列
第 0 行 - 第 3 列
第 0 行 - 第 4 列
第 0 行 - 第 5 列
第 0 行 - 第 6 列
第 0 行 - 第 7 列
第 0 行 - 第 8 列
第 1 行 - 第 2 列
第 1 行 - 第 3 列
第 1 行 - 第 4 列
第 1 行 - 第 5 列
第 1 行 - 第 6 列
第 1 行 - 第 7 列
第 1 行 - 第 8 列
第 2 行 - 第 2 列
第 2 行 - 第 3 列
第 2 行 - 第 4 列
第 2 行 - 第 5 列
第 2 行 - 第 6 列
第 2 行 - 第 7 列
第 2 行 - 第 8 列
第 3 行 - 第 2 列
第 3 行 - 第 3 列
第 3 行 - 第 4 列
第 3 行 - 第 5 列
第 3 行 - 第 6 列
第 3 行 - 第 7 列
第 3 行 - 第 8 列
第 4 行 - 第 2 列
第 4 行 - 第 3 列
第 4 行 - 第 4 列
第 4 行 - 第 5 列
第 4 行 - 第 6 列
第 4 行 - 第 7 列
第 4 行 - 第 8 列
第 5 行 - 第 2 列
第 5 行 - 第 3 列
第 5 行 - 第 4 列
第 5 行 - 第 5 列
第 5 行 - 第 6 列
第 5 行 - 第 7 列
第 5 行 - 第 8 列
第 6 行 - 第 2 列
第 6 行 - 第 3 列
第 6 行 - 第 4 列
第 6 行 - 第 5 列
第 6 行 - 第 6 列
第 6 行 - 第 7 列
第 6 行 - 第 8 列
第 7 行 - 第 2 列
第 7 行 - 第 3 列
第 7 行 - 第 4 列
第 7 行 - 第 5 列
第 7 行 - 第 6 列
第 7 行 - 第 7 列
第 7 行 - 第 8 列
第 8 行 - 第 2 列
第 8 行 - 第 3 列
第 8 行 - 第 4 列
第 8 行 - 第 5 列
第 8 行 - 第 6 列
第 8 行 - 第 7 列
第 8 行 - 第 8 列
第 2 列
第 3 列
第 4 列
第 5 列
第 6 列
第 7 列
第 8 列
第 0 行 - 第 0 列
第 0 行 - 第 1 列
第 1 行 - 第 0 列
第 1 行 - 第 1 列
第 2 行 - 第 0 列
第 2 行 - 第 1 列
第 3 行 - 第 0 列
第 3 行 - 第 1 列
第 4 行 - 第 0 列
第 4 行 - 第 1 列
第 5 行 - 第 0 列
第 5 行 - 第 1 列
第 6 行 - 第 0 列
第 6 行 - 第 1 列
第 7 行 - 第 0 列
第 7 行 - 第 1 列
第 8 行 - 第 0 列
第 8 行 - 第 1 列
第 0 列
第 1 列
第 0 行 - 第 9 列
第 1 行 - 第 9 列
第 2 行 - 第 9 列
第 3 行 - 第 9 列
第 4 行 - 第 9 列
第 5 行 - 第 9 列
第 6 行 - 第 9 列
第 7 行 - 第 9 列
第 8 行 - 第 9 列
第 9 列

动态行高

虚拟表格能够渲染具有动态高度的行。如果您正在处理数据并且不确定内容大小,此功能非常适合渲染能够适应内容高度的行。要启用此功能,请传递 `estimated-row-height` 属性。估计高度与实际内容越接近,渲染体验就越流畅。

提示

在渲染行时,每一行的高度都会动态测量。因此,如果您试图显示大量数据,UI 可能 会出现跳动。

汤姆
Corrupti doloremque a quos vero delectus consequatur.
汤姆
Quaerat ipsam necessitatibus eum quibusdam est id voluptatem cumque mollitia.
汤姆
Quaerat ipsam necessitatibus eum quibusdam est id voluptatem cumque mollitia.
汤姆
Eius optio fugiat.
汤姆
Eius optio fugiat.
汤姆
Eius optio fugiat.
汤姆
Corrupti doloremque a quos vero delectus consequatur.
汤姆
Corrupti doloremque a quos vero delectus consequatur.
汤姆
Quaerat ipsam necessitatibus eum quibusdam est id voluptatem cumque mollitia.
汤姆
Eius optio fugiat.
汤姆
Corrupti doloremque a quos vero delectus consequatur.
名称
描述
操作
随机-200
随机-199
随机-198
Id

详情视图

使用动态高度渲染,您还可以在表格内显示详情视图。

第 0 行 - 第 0 列
第 0 行 - 第 1 列
第 0 行 - 第 2 列
第 0 行 - 第 3 列
第 0 行 - 第 4 列
第 0 行 - 第 5 列
第 0 行 - 第 6 列
第 0 行 - 第 7 列
第 0 行 - 第 8 列
第 0 行 - 第 9 列
第 1 行 - 第 0 列
第 1 行 - 第 1 列
第 1 行 - 第 2 列
第 1 行 - 第 3 列
第 1 行 - 第 4 列
第 1 行 - 第 5 列
第 1 行 - 第 6 列
第 1 行 - 第 7 列
第 1 行 - 第 8 列
第 1 行 - 第 9 列
第 2 行 - 第 0 列
第 2 行 - 第 1 列
第 2 行 - 第 2 列
第 2 行 - 第 3 列
第 2 行 - 第 4 列
第 2 行 - 第 5 列
第 2 行 - 第 6 列
第 2 行 - 第 7 列
第 2 行 - 第 8 列
第 2 行 - 第 9 列
第 3 行 - 第 0 列
第 3 行 - 第 1 列
第 3 行 - 第 2 列
第 3 行 - 第 3 列
第 3 行 - 第 4 列
第 3 行 - 第 5 列
第 3 行 - 第 6 列
第 3 行 - 第 7 列
第 3 行 - 第 8 列
第 3 行 - 第 9 列
第 4 行 - 第 0 列
第 4 行 - 第 1 列
第 4 行 - 第 2 列
第 4 行 - 第 3 列
第 4 行 - 第 4 列
第 4 行 - 第 5 列
第 4 行 - 第 6 列
第 4 行 - 第 7 列
第 4 行 - 第 8 列
第 4 行 - 第 9 列
第 5 行 - 第 0 列
第 5 行 - 第 1 列
第 5 行 - 第 2 列
第 5 行 - 第 3 列
第 5 行 - 第 4 列
第 5 行 - 第 5 列
第 5 行 - 第 6 列
第 5 行 - 第 7 列
第 5 行 - 第 8 列
第 5 行 - 第 9 列
第 6 行 - 第 0 列
第 6 行 - 第 1 列
第 6 行 - 第 2 列
第 6 行 - 第 3 列
第 6 行 - 第 4 列
第 6 行 - 第 5 列
第 6 行 - 第 6 列
第 6 行 - 第 7 列
第 6 行 - 第 8 列
第 6 行 - 第 9 列
第 7 行 - 第 0 列
第 7 行 - 第 1 列
第 7 行 - 第 2 列
第 7 行 - 第 3 列
第 7 行 - 第 4 列
第 7 行 - 第 5 列
第 7 行 - 第 6 列
第 7 行 - 第 7 列
第 7 行 - 第 8 列
第 7 行 - 第 9 列
第 8 行 - 第 0 列
第 8 行 - 第 1 列
第 8 行 - 第 2 列
第 8 行 - 第 3 列
第 8 行 - 第 4 列
第 8 行 - 第 5 列
第 8 行 - 第 6 列
第 8 行 - 第 7 列
第 8 行 - 第 8 列
第 8 行 - 第 9 列
第 0 列
第 1 列
第 2 列
第 3 列
第 4 列
第 5 列
第 6 列
第 7 列
第 8 列
第 9 列

当您想要显示总结性消息或信息时,渲染一个自定义的页脚。

第 0 行 - 第 0 列
第 0 行 - 第 1 列
第 0 行 - 第 2 列
第 0 行 - 第 3 列
第 0 行 - 第 4 列
第 0 行 - 第 5 列
第 0 行 - 第 6 列
第 0 行 - 第 7 列
第 0 行 - 第 8 列
第 0 行 - 第 9 列
第 1 行 - 第 0 列
第 1 行 - 第 1 列
第 1 行 - 第 2 列
第 1 行 - 第 3 列
第 1 行 - 第 4 列
第 1 行 - 第 5 列
第 1 行 - 第 6 列
第 1 行 - 第 7 列
第 1 行 - 第 8 列
第 1 行 - 第 9 列
第 2 行 - 第 0 列
第 2 行 - 第 1 列
第 2 行 - 第 2 列
第 2 行 - 第 3 列
第 2 行 - 第 4 列
第 2 行 - 第 5 列
第 2 行 - 第 6 列
第 2 行 - 第 7 列
第 2 行 - 第 8 列
第 2 行 - 第 9 列
第 3 行 - 第 0 列
第 3 行 - 第 1 列
第 3 行 - 第 2 列
第 3 行 - 第 3 列
第 3 行 - 第 4 列
第 3 行 - 第 5 列
第 3 行 - 第 6 列
第 3 行 - 第 7 列
第 3 行 - 第 8 列
第 3 行 - 第 9 列
第 4 行 - 第 0 列
第 4 行 - 第 1 列
第 4 行 - 第 2 列
第 4 行 - 第 3 列
第 4 行 - 第 4 列
第 4 行 - 第 5 列
第 4 行 - 第 6 列
第 4 行 - 第 7 列
第 4 行 - 第 8 列
第 4 行 - 第 9 列
第 5 行 - 第 0 列
第 5 行 - 第 1 列
第 5 行 - 第 2 列
第 5 行 - 第 3 列
第 5 行 - 第 4 列
第 5 行 - 第 5 列
第 5 行 - 第 6 列
第 5 行 - 第 7 列
第 5 行 - 第 8 列
第 5 行 - 第 9 列
第 6 行 - 第 0 列
第 6 行 - 第 1 列
第 6 行 - 第 2 列
第 6 行 - 第 3 列
第 6 行 - 第 4 列
第 6 行 - 第 5 列
第 6 行 - 第 6 列
第 6 行 - 第 7 列
第 6 行 - 第 8 列
第 6 行 - 第 9 列
第 7 行 - 第 0 列
第 7 行 - 第 1 列
第 7 行 - 第 2 列
第 7 行 - 第 3 列
第 7 行 - 第 4 列
第 7 行 - 第 5 列
第 7 行 - 第 6 列
第 7 行 - 第 7 列
第 7 行 - 第 8 列
第 7 行 - 第 9 列
第 8 行 - 第 0 列
第 8 行 - 第 1 列
第 8 行 - 第 2 列
第 8 行 - 第 3 列
第 8 行 - 第 4 列
第 8 行 - 第 5 列
第 8 行 - 第 6 列
第 8 行 - 第 7 列
第 8 行 - 第 8 列
第 8 行 - 第 9 列
第 9 行 - 第 0 列
第 9 行 - 第 1 列
第 9 行 - 第 2 列
第 9 行 - 第 3 列
第 9 行 - 第 4 列
第 9 行 - 第 5 列
第 9 行 - 第 6 列
第 9 行 - 第 7 列
第 9 行 - 第 8 列
第 9 行 - 第 9 列
第 0 列
第 1 列
第 2 列
第 3 列
第 4 列
第 5 列
第 6 列
第 7 列
第 8 列
第 9 列

自定义空状态渲染器

渲染一个自定义的空元素。

第 0 列
第 1 列
第 2 列
第 3 列
第 4 列
第 5 列
第 6 列
第 7 列
第 8 列
第 9 列

无数据

覆盖层

当您想要显示加载指示器或其他内容时,在表格顶部渲染一个覆盖层。

第 0 行 - 第 0 列
第 0 行 - 第 1 列
第 0 行 - 第 2 列
第 0 行 - 第 3 列
第 0 行 - 第 4 列
第 0 行 - 第 5 列
第 0 行 - 第 6 列
第 0 行 - 第 7 列
第 0 行 - 第 8 列
第 0 行 - 第 9 列
第 1 行 - 第 0 列
第 1 行 - 第 1 列
第 1 行 - 第 2 列
第 1 行 - 第 3 列
第 1 行 - 第 4 列
第 1 行 - 第 5 列
第 1 行 - 第 6 列
第 1 行 - 第 7 列
第 1 行 - 第 8 列
第 1 行 - 第 9 列
第 2 行 - 第 0 列
第 2 行 - 第 1 列
第 2 行 - 第 2 列
第 2 行 - 第 3 列
第 2 行 - 第 4 列
第 2 行 - 第 5 列
第 2 行 - 第 6 列
第 2 行 - 第 7 列
第 2 行 - 第 8 列
第 2 行 - 第 9 列
第 3 行 - 第 0 列
第 3 行 - 第 1 列
第 3 行 - 第 2 列
第 3 行 - 第 3 列
第 3 行 - 第 4 列
第 3 行 - 第 5 列
第 3 行 - 第 6 列
第 3 行 - 第 7 列
第 3 行 - 第 8 列
第 3 行 - 第 9 列
第 4 行 - 第 0 列
第 4 行 - 第 1 列
第 4 行 - 第 2 列
第 4 行 - 第 3 列
第 4 行 - 第 4 列
第 4 行 - 第 5 列
第 4 行 - 第 6 列
第 4 行 - 第 7 列
第 4 行 - 第 8 列
第 4 行 - 第 9 列
第 5 行 - 第 0 列
第 5 行 - 第 1 列
第 5 行 - 第 2 列
第 5 行 - 第 3 列
第 5 行 - 第 4 列
第 5 行 - 第 5 列
第 5 行 - 第 6 列
第 5 行 - 第 7 列
第 5 行 - 第 8 列
第 5 行 - 第 9 列
第 6 行 - 第 0 列
第 6 行 - 第 1 列
第 6 行 - 第 2 列
第 6 行 - 第 3 列
第 6 行 - 第 4 列
第 6 行 - 第 5 列
第 6 行 - 第 6 列
第 6 行 - 第 7 列
第 6 行 - 第 8 列
第 6 行 - 第 9 列
第 7 行 - 第 0 列
第 7 行 - 第 1 列
第 7 行 - 第 2 列
第 7 行 - 第 3 列
第 7 行 - 第 4 列
第 7 行 - 第 5 列
第 7 行 - 第 6 列
第 7 行 - 第 7 列
第 7 行 - 第 8 列
第 7 行 - 第 9 列
第 8 行 - 第 0 列
第 8 行 - 第 1 列
第 8 行 - 第 2 列
第 8 行 - 第 3 列
第 8 行 - 第 4 列
第 8 行 - 第 5 列
第 8 行 - 第 6 列
第 8 行 - 第 7 列
第 8 行 - 第 8 列
第 8 行 - 第 9 列
第 9 行 - 第 0 列
第 9 行 - 第 1 列
第 9 行 - 第 2 列
第 9 行 - 第 3 列
第 9 行 - 第 4 列
第 9 行 - 第 5 列
第 9 行 - 第 6 列
第 9 行 - 第 7 列
第 9 行 - 第 8 列
第 9 行 - 第 9 列
第 10 行 - 第 0 列
第 10 行 - 第 1 列
第 10 行 - 第 2 列
第 10 行 - 第 3 列
第 10 行 - 第 4 列
第 10 行 - 第 5 列
第 10 行 - 第 6 列
第 10 行 - 第 7 列
第 10 行 - 第 8 列
第 10 行 - 第 9 列
第 0 列
第 1 列
第 2 列
第 3 列
第 4 列
第 5 列
第 6 列
第 7 列
第 8 列
第 9 列

手动滚动

使用 Table V2 提供的方法,通过所需的偏移量/行数进行手动/程序化滚动。

提示

`scrollToRow` 的第二个参数是滚动策略,默认为 `auto`,它会自行计算滚动位置。如果您希望滚动到特定位置,可以自行定义策略。可用选项为 `"auto" | "center" | "end" | "start" | "smart"`。

`smart` 和 `auto` 的区别在于 `auto` 是 `smart` 滚动策略的子集。

滚动像素
滚动行数
第 0 行 - 第 0 列
第 0 行 - 第 1 列
第 0 行 - 第 2 列
第 0 行 - 第 3 列
第 0 行 - 第 4 列
第 0 行 - 第 5 列
第 0 行 - 第 6 列
第 0 行 - 第 7 列
第 0 行 - 第 8 列
第 0 行 - 第 9 列
第 1 行 - 第 0 列
第 1 行 - 第 1 列
第 1 行 - 第 2 列
第 1 行 - 第 3 列
第 1 行 - 第 4 列
第 1 行 - 第 5 列
第 1 行 - 第 6 列
第 1 行 - 第 7 列
第 1 行 - 第 8 列
第 1 行 - 第 9 列
第 2 行 - 第 0 列
第 2 行 - 第 1 列
第 2 行 - 第 2 列
第 2 行 - 第 3 列
第 2 行 - 第 4 列
第 2 行 - 第 5 列
第 2 行 - 第 6 列
第 2 行 - 第 7 列
第 2 行 - 第 8 列
第 2 行 - 第 9 列

TableV2 属性

名称描述类型默认值
cache预先渲染的行数,以提高性能number2
estimated-row-height用于渲染动态高度行的估计行高number
header-class传递给表头容器的自定义类名string / Function<HeaderClassGetter>
header-props传递给表头组件的自定义 propsobject / Function<HeaderPropsGetter>
header-cell-props传递给表头单元格组件的自定义 propsobject / Function<HeaderCellPropsGetter>
header-height表头的高度由 `height` 设置。如果给定一个数组,它将渲染等于其长度的表头行number/ number[]50
footer-height页脚元素的高度,如果提供,将作为表格高度计算的一部分。number0
row-class传递给行容器的自定义类名string / Function<RowClassGetter>
row-key每一行的键,如果未提供,将是行的索引string / Symbol / numberid
row-props传递给行组件的自定义 propsobject / Function<RowPropsGetter>
row-height每一行的高度,用于计算表格的总高度number50
row-event-handlers附加到每一行的处理程序集合object<RowEventHandlers>
cell-props传递给每个单元格(表头单元格除外)的额外 propsobject / Function<CellPropsGetter>
columns列定义的数组。Column[]
data要在表格中渲染的数据数组。Data[][]
data-getter一种从数据源自定义数据获取的方法。Function<DataGetter<T>>
fixed-data用于在主内容上方和表头下方渲染行的数据object<Data>
expand-column-key指示哪一行可展开的列键string
expanded-row-keys展开行的键数组,可与 `v-model` 一起使用KeyType[]
default-expanded-row-keys默认展开行的键数组,非响应式KeyType[]
class虚拟表格的类名,将应用于所有三个表格(左、右、主)string / array / object
fixed标志,指示表格列的宽度是固定的还是灵活的。booleanfalse
width 必填表格的宽度number
height 必填表格的高度number
max-height表格的最大高度number
indent-size树形表格的水平缩进number12
h-scrollbar-size指示表格的水平滚动条大小,用于防止水平和垂直滚动条重叠number6
v-scrollbar-size指示表格的垂直滚动条大小,用于防止水平和垂直滚动条重叠number6
scrollbar-always-on如果为 true,滚动条将始终显示,而不是在鼠标悬停在表格上时显示booleanfalse
sort-by排序指示器object<SortBy>{}
sort-state多重排序指示器object<SortState>undefined

TableV2 插槽

名称参数
cellobject<CellSlotProps>
headerobject<HeaderSlotProps>
header-cellobject<HeaderCellSlotProps>
rowobject<RowSlotProps>
footer
empty
overlay

TableV2 事件

名称描述参数
column-sort列排序时调用object<ColumnSortParam>
expanded-rows-change展开行改变时调用KeyType[]
end-reached到达表格末尾时调用。回调包含剩余距离,通常是滚动条高度。Function
scroll滚动后调用object<ScrollParams>
rows-rendered行渲染时调用object<RowsRenderedParams>
row-expand通过单击箭头图标展开/折叠树节点时调用object<RowExpandParams>

TableV2 方法

事件名称描述参数
scrollTo滚动到给定位置Function
scrollToLeft滚动到给定的水平位置Function
scrollToTop滚动到给定的垂直位置Function
scrollToRow使用指定的滚动策略滚动到给定的行Function

提示

请注意,这些是 `JavaScript` 对象,因此您 不能对 这些属性使用短横线命名法(kebab-case)。

列属性

名称描述类型默认值
align表格单元格内容的对齐方式Alignmentleft
class列的类名string
key唯一标识KeyType
dataKey数据的唯一标识KeyType
fixed列的固定方向boolean / FixedDirfalse
flexGrowCSSProperties flex-grow,仅当这不是固定表格时有用number0
flexShrinkCSSProperties flex-shrink,仅当这不是固定表格时有用number1
headerClass用于自定义表头列类string
hidden列是否不可见boolean
style列单元格的自定义样式,将与网格单元格合并object
sortable指示列是否可排序boolean
title在表头单元格中渲染的默认文本string
maxWidth列的最大宽度number
minWidth列的最小宽度number
width 必填列的宽度number
cellRenderer自定义单元格渲染器VueComponent / (props: CellRenderProps) => VNode
headerCellRenderer自定义表头渲染器VueComponent / (props: HeaderRenderProps) => VNode

类型定义

显示类型声明
ts
type HeaderClassGetter = (param: {
  columns: Column<any>[]
  headerIndex: number
}) => string

type HeaderPropsGetter = (param: {
  columns: Column<any>[]
  headerIndex: number
}) => Record<string, any>

type HeaderCellPropsGetter = (param: {
  columns: Column<any>[]
  column: Column<any>
  columnIndex: number
  headerIndex: number
  style: CSSProperties
}) => Record<string, any>

type RowClassGetter = (param: {
  columns: Column<any>[]
  rowData: any
  rowIndex: number
}) => string

type RowPropsGetter = (param: {
  columns: Column<any>[]
  rowData: any
  rowIndex: number
}) => Record<string, any>

type CellPropsGetter = (param: {
  column: Column<any>
  columns: Column<any>[]
  columnIndex: number
  cellData: any
  rowData: any
  rowIndex: number
}) => void

type DataGetterParams<T> = {
  columns: Column<T>[]
  column: Column<T>
  columnIndex: number
} & RowCommonParams

type DataGetter<T> = (params: DataGetterParams<T>) => T

type CellRenderProps<T> = {
  cellData: T
  column: Column<T>
  columns: Column<T>[]
  columnIndex: number
  rowData: any
  rowIndex: number
}

type HeaderRenderProps<T> = {
  column: Column<T>
  columns: Column<T>[]
  columnIndex: number
  headerIndex: number
}

type ScrollParams = {
  xAxisScrollDir: 'forward' | 'backward'
  scrollLeft: number
  yAxisScrollDir: 'forward' | 'backward'
  scrollTop: number
}

type CellSlotProps<T> = {
  column: Column<T>
  columns: Column<T>[]
  columnIndex: number
  depth: number
  style: CSSProperties
  rowData: any
  rowIndex: number
  isScrolling: boolean
  expandIconProps?:
    | {
        rowData: any
        rowIndex: number
        onExpand: (expand: boolean) => void
      }
    | undefined
}

type HeaderSlotProps = {
  cells: VNode[]
  columns: Column<any>[]
  headerIndex: number
}

type HeaderCellSlotProps = {
  class: string
  columns: Column<any>[]
  column: Column<any>
  columnIndex: number
  headerIndex: number
  style: CSSProperties
  headerCellProps?: any
  sortBy: SortBy
  sortState?: SortState | undefined
  onColumnSorted: (e: MouseEvent) => void
}

type RowCommonParams = {
  rowData: any
  rowIndex: number
}

type RowEventHandlerParams = {
  rowKey: KeyType
  event: Event
} & RowCommonParams

type RowEventHandler = (params: RowEventHandlerParams) => void
type RowEventHandlers = {
  onClick?: RowEventHandler
  onContextmenu?: RowEventHandler
  onDblclick?: RowEventHandler
  onMouseenter?: RowEventHandler
  onMouseleave?: RowEventHandler
}

type RowsRenderedParams = {
  rowCacheStart: number
  rowCacheEnd: number
  rowVisibleStart: number
  rowVisibleEnd: number
}

type RowSlotProps = {
  columns: Column<any>[]
  rowData: any
  columnIndex: number
  rowIndex: number
  data: any
  key: number | string
  isScrolling?: boolean
  style: CSSProperties
}

type RowExpandParams = {
  expanded: boolean
  rowKey: KeyType
} & RowCommonParams

type Data = {
  [key: KeyType]: any
  children?: Array<any>
}

type FixedData = Data

type KeyType = string | number | symbol

type ColumnSortParam<T> = { column: Column<T>; key: KeyType; order: SortOrder }

enum SortOrder {
  ASC = 'asc',
  DESC = 'desc',
}

type SortBy = { key: KeyType; Order: SortOrder }
type SortState = Record<KeyType, SortOrder>

常见问题

如何在第一列渲染一个带复选框的列表?

由于您被允许定义自己的单元格渲染器,您可以像 自定义单元格渲染器 示例那样自己渲染 `checkbox`,并自行维护状态。

为什么虚拟化表格提供的功能比 TableV1 少?

对于虚拟化表格,我们打算提供更少的功能,让我们的用户根据需要实现自己的功能。集成太多功能使得代码难以维护,而且对大多数用户来说,基本功能已经足够了。一些关键功能尚未开发。我们很乐意听取您的意见。加入 Discord 保持关注。

来源

组件样式文档

贡献者