Skip to content

虚拟列表

用于大量数据渲染时,提升性能。

配置

props:

属性类型默认值描述
virtualbooleanfalse是否启用虚拟列表
virtualXbooleanfalse是否启用横向虚拟列表
autoResizeboolean| () => voidtrue是否自动重新计算可视区域。如果传递回调函数,则此函数会在resize后被调用

纵向虚拟列表

WARNING

行高将不再被内容影响。 具体移至行高章节。

vue
<StkTable virtual></StkTable>
loading

横向虚拟列表

WARNING

StkTableColumn['width'] 将有默认值 100px

vue
<StkTable virtual-x></StkTable>
loading

重新计算可视区域 autoResize

很多情况下,虚拟列表区域的宽高会因为各种原因发生变化,这时需要重新计算可视区域。

组件内部已基于 ResizeObserver 监听 StkTable 的尺寸变化,当尺寸变化时,会自动重新计算可视区域,该功能默认打开。

WARNING

不支持 ResizeObserver 的浏览器会使用 onresize兜底。

某些情况下,仍需要手动重新计算虚拟列表的可视区域,此时可以调用组件expose的方法。

ts
/**
 * 初始化纵向虚拟列表的可视区域
 * @param {number} [height] 虚拟滚动的高度
 */
initVirtualScrollY(height?: number)
/**
 * 初始化横向虚拟列表的可视区域
 */
initVirtualScrollX()
/**
 * 初始化纵向和横向虚拟列表的可视区域
 */
initVirtualScroll(height?: number)

initVirtualScroll 等价于 initVirtualScrollY + initVirtualScrollX

关闭自动计算

vue
<StkTable :autoResize="false"></StkTable>

根据 MIT 许可证发布