- 项目中用到表格树,有层级展开功能,现场数据量非常大,初始渲染和进行一些操作时会非常卡顿,使用效果差。
- 表格树卡顿的解决方案:懒加载和虚拟表格。
- 懒加载
element table 的懒加载
官网地址- 使用<el-table>懒加载,点击父级调用接口获取子级。
- 优点:按层级获取数据,节点数据异步加载,减轻渲染压力。
- 缺点:只能一个层级一个层级的展开,若需求需要一次性打开所有层级,则无法实现。
- 数据结构:通过hasChildren定义是否有子级,子级数据放在父级的children中
- 虚拟表格
- 表格树的数据量大,不可避免会导致页面渲染速度慢。
- 如果表格树可编辑,则最好先隐藏输入框,点击某行再把该行的输入框显示出来。会减少一些初次渲染时间。
- 避免一些需要遍历树结构的需求,遍历树结构也会耗费时间。
- 开发之前需要提前预知是否数据量大会导致卡顿,需提前选择解决方案,因为不同解决方案的数据结构不同,后期再改成本和风险太大。
- 避免在表格单元格中添加遍历方法,因为在每次点击表格行、勾选等操作后,都会触发,会大大增加渲染时间。