技术分享| 前端性能优化——虚拟滚动(Virtual Scroll)

前端遇到大量数据(尤其是大数据表)的DOM 渲染时,通常会卡顿,需要考虑优化性能问题,这里针对DOM 渲染引出“虚拟滚动”方案, 详细请在以下各文章中详细了解:

vue插件 vue-virtual-scroll-list解决数据量太大问题: (优化Element UI的el-select组件)

https://www.cnblogs.com/yuwenjing0727/p/18129844

vue-virtual-scroller的使用,展示巨量数据,长列表优化,虚拟列表:

https://blog.csdn.net/muzidigbig/article/details/132135898 

 无缝滚动 vue-seamless-scroll 滚动表格:  (结合el-table)

https://blog.51cto.com/u_12881709/5959345

miniUI的datagrid控件本身也为大数据表格提供了“virtualScroll”和“virtualColumns”属性实现虚拟滚动:http://www.miniui.com/docs/api/index.html#ui=datagrid

virtualScrollBoolean是否虚拟滚动。当显示的数据超过500以上时,请设置此属性,能极大提升性能。
virtualColumnsBoolean是否虚拟滚动列,在列较多时有用,提高性能。

 

其实了解了原理,可以借助针对对第三库的辅助,也可以自己根据需要自己实现相应优化,以下文章是针对“虚拟滚动”的讲解,感兴趣可详读:

技术分享| 前端性能优化——虚拟滚动(Virtual Scroll) 

https://www.modb.pro/db/122781 

题外,这里再推荐一款基于Vue的高性能前端表格组件——Surely Vue Table(S-Table) 

https://www.surely.cool/doc/guide#%E7%AE%80%E4%BB%8B 

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
`el-table` 是 Element UI 中的一个表格组件,而 `vue-virtual-scroller` 是一个 Vue.js 插件,用于优化大量数据的表格滚动性能,通过虚拟滚动技术渲染当前可见的部分,提高性能并减少内存消耗。 当需要处理的数据量非常大,常规的滚动会带来性能瓶颈时,可以将 `el-table` 和 `vue-virtual-scroller` 结合使用。具体步骤如下: 1. 安装 `vue-virtual-scroller`: 在项目中安装这个插件,通常是通过 npm 或者 yarn 进行安装。 ```bash npm install vue-virtual-scroller ``` 2. 配置 `el-table` 并应用虚拟滚动:给 `el-table` 组件添加 `v-virtual-scroll` 指令,并提供必要的配置项,如 `height`、`offsetHeight`、`itemHeight` 和数据源(通常是一个响应式数组)。 ```html <template> <div class="virtual-scroll-wrapper"> <el-table :data="largeData" v-virtual-scroll="{ wrapperClass: 'scroll-wrapper', height: '400px', itemHeight: 50 }"></el-table> </div> </template> <script> import VirtualScroll from 'vue-virtual-scroller' export default { components: { VirtualScroll }, data() { return { largeData: [], // 实际上你需要在这里加载大量的数据 } }, mounted() { // 加载大量数据并填充到 `largeData` this.largeData = loadLargeData() }, } </script> ``` 3. 自定义 `VirtualScroll` 的 `onRendered` 函数,可以在每一组可视内容创建完成后执行某些操作。 ```javascript mounted() { // 使用 `this.$refs.virtualScroll` 访问虚拟滚动实例 this.$refs.virtualScroll.onRendered(() => { console.log('Finished rendering virtual scroll'); }); }, ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值