为什么要用虚拟列表
当列表数据量很大时(比如 1 万条、10 万条),如果直接把所有数据都渲染成 DOM 节点,会出现明显的性能问题:
- DOM 节点过多:浏览器需要创建和维护海量节点,内存占用高。
- 渲染卡顿:首次渲染时间长,滚动时掉帧。
- 滚动不流畅:大量节点参与重排重绘,FPS 下降。
但实际上,用户在同一时刻能看到的列表项只有几十条(可视区域大小)。虚拟列表的核心思想就是:只渲染可视区域内的那几十条,其余的用空白占位撑开滚动条。
2026/7/28大约 6 分钟
当列表数据量很大时(比如 1 万条、10 万条),如果直接把所有数据都渲染成 DOM 节点,会出现明显的性能问题:
但实际上,用户在同一时刻能看到的列表项只有几十条(可视区域大小)。虚拟列表的核心思想就是:只渲染可视区域内的那几十条,其余的用空白占位撑开滚动条。