项目场景:
项目场景:项目开发时遇到后端返回的数据量很大,这些数据要渲染在el-table组件中。并且没有做分页功能时,程序面临卡死和白屏的问题。
原因分析:
页面加载卡顿是前端工作中要考虑到的性能优化的问题,造成卡顿的原因有很多。例如:
(1)过多的http请求
(2)长时间占用js线程
(3)页面回流和重绘较多
(4)资源加载堵塞
(5)内存泄漏导致内存过大
(6)dom节点或事件占用内存过大
(7)长时间占用js线程
(8)资源加载阻塞
(9)页面回流和重绘较多
解决方案:
我这里涉及到的原因是页面触发了大量的重绘,一次性渲染了过多的dom元素。解决方法有很多,比如分页,使用异步组件或延迟加载,v-if 替代 v-show,虚拟滚动el-table-virtual-scroll第三方库。
我这里使用的是虚拟滚动。
首先在项目里安装el-table-virtual-scroll,npm i el-table-virtual-scroll -S
然后在需要使用的页面导入
import VirtualScroll from "el-table-virtual-scroll";
import {
VirtualColumn }