01-虚拟滚动速览

117 阅读1分钟

什么是虚拟滚动

大数据量下, 只展现视口中能容纳的数据条数, 其他数据应占用的位置, 使用空白撑开, 从而显示滚动条, 并在滚动时,动态截取要显示的内容

虚拟滚动作用

减少界面中dom节点的渲染, 在用户体验基本不变的情况下,提升页面渲染性能, 有效防止界面卡顿.

如: 后端返回了1w条数据, 如果按照正常的渲染方式, 至少需要渲染1w个dom节点. 而界面每次可能只能显示10几条的数据,那么其他dom节点实际上是意义不大的

大数据量下可用虚拟列表优化的地方

  • 表格数据展示
  • 下拉列表
  • 树结构展示

虚拟滚动的组成部分和三种状态

组成部分

头部虚拟占位(下图顶部的灰色部分)
视口显示数据(下图中间的蓝色部分)
底部虚拟站位(下图底部的灰色部分)

image.png

三种状态

初始状态(未滚动)

特点: 头部虚拟占位的高度为0. 如下图

image.png

滚动到数据的中间部分

image.png

滚动到末尾

特点: 底部虚拟占位的高度为0. 如下图

image.png