服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - 编程技术 - 十分钟搞定前端虚拟列表

十分钟搞定前端虚拟列表

2023-11-30 15:37前端充电宝 编程技术

虚拟列表的概念就出现了,随后又出现了各种各样的虚拟列表库。通过将可视区域内和可见区域外的数据进行动态切换,虚拟列表可以极大地提升列表滚动的性能。本文就来分享一些主流的前端虚拟列表工具库!

十分钟搞定前端虚拟列表

当处理包含大量数据的列表时,前端性能往往是一个重要的考虑点。传统的滚动列表组件在处理大数据量时可能会非常卡顿,甚至导致页面崩溃。那么针对这个问题,虚拟列表的概念就出现了,随后又出现了各种各样的虚拟列表库。通过将可视区域内和可见区域外的数据进行动态切换,虚拟列表可以极大地提升列表滚动的性能。本文就来分享一些主流的前端虚拟列表工具库!

Vue

vue-virtual-scroller

vue-virtual-scroller 是一个基于Vue.js的虚拟滚动列表组件,用于优化大数据量渲染时的性能。它可以在滚动时动态地加载和卸载列表项,从而减少页面的 DOM 元素数量,提高渲染效率,同时也能够提高用户体验。

vue-virtual-scroller 具有以下特点:

  • 无限滚动:可以像普通滚动列表一样滚动,即使数据量非常大,也不会有性能问题。
  • 性能优秀:只渲染当前可见区域内的数据,而不是整个列表,因此能够降低浏览器的负载,提高页面渲染性能。
  • 支持动态高度/宽度:可以根据不同的数据项设置不同的高度或宽度。
  • 支持多种滚动方式:支持垂直和水平两种滚动方式,同时也支持鼠标滚轮、触控滑动等多种滚动方式。
  • 易于使用:支持通过简单的配置即可实现虚拟滚动列表,同时也可以自定义列表项的样式和渲染方式。

十分钟搞定前端虚拟列表

Github(8.7k):https://github.com/Akryum/vue-virtual-scroller。

vue-virtual-scroll-list

vue-virtual-scroll-list 是一个支持高性能滚动的 Vue 组件,可以用于处理包含大量数据项的列表。它能够根据当前视窗的大小,只渲染可见部分的数据项,并在滚动时动态更新列表内容,从而实现高效的渲染和滚动性能。

vue-virtual-scroll-list 具有以下特点:

  • 高性能:只渲染用户可见部分的数据,大大减少了渲染时间和内存占用,并提高了滚动时的渲染性能,特别是处理包含大量数据的列表时更为明显。
  • 大型数据支持:可以处理非常大的列表数据,在无需占用过多内存和处理器资源的同时,仍可以保证流畅的滚动体验。
  • 灵活定制:该库提供了许多可配置的选项,如列表容器的高度和宽度、渲染行数、数据项组件等,使开发者可以根据自己的需求定制出更符合项目要求的虚拟滚动列表。
  • 可扩展性:由于该库是基于 Vue 组件封装的,因此可以很方便地与其他 Vue 组件进行集成,适用于各种前端应用场景。
  • 轻量级:代码简洁,不依赖任何第三方库,压缩后仅有几 kb 的大小,易于集成和使用。

十分钟搞定前端虚拟列表

Github(4.2k):https://github.com/tangbc/vue-virtual-scroll-list。

vue3-infinite-list

vue3-infinite-list 是一个适用于vue的短小精悍的无限滚动加载库,零依赖。其具有以下特性:

  • 体积小 & 零依赖 – gzipped 后只有 3kb。
  • 百万级列表渲染, 不费吹灰之力。
  • 支持滚动到指定条目 或 指定初始滚动偏移量。
  • 支持固定 或 可变 宽/高。
  • 垂直 or 水平 列表。

十分钟搞定前端虚拟列表

Github(195):https://github.com/tnfe/vue3-infinite-list。

React

react-virtualized

React-virtualized是一个基于React框架的用于渲染大型列表和表格的库。它通过仅渲染可见部分的内容来提高性能,从而有效地处理大量数据。该库提供了一组可重复使用的高级组件,如List、Table、Masonry、InfiniteLoader等,这些组件旨在减少内存使用,并且可以通过自定义样式和布局进行配置。

十分钟搞定前端虚拟列表

Github(25.5k):https://github.com/bvaughn/react-virtualized。

react-window

React-window 是一个用于渲染大型列表和表格的轻量级库。它是实现虚拟滚动技术的一种方法,旨在提高处理大量数据时的性能和内存效率。

React-window 是对 React-virtualized 的完全重写,旨在使库更小、更快。React-window的包大小较小,并且在构建项目时对文件大小的增加也相对较小。相比之下,React-virtualized 有许多非必要的功能和组件,导致包大小较大。

十分钟搞定前端虚拟列表

Github(14.8k):https://github.com/bvaughn/react-window。

react-virtuoso

React Virtuoso 是最强大的 React 虚拟列表/表格组件,以下是其优势所在:

  • 可变大小的项目
  • 支持反向(从底部向上)滚动和前置项目(例如聊天、动态推送等)。
  • 分组模式与粘性标题
  • 响应式网格布局
  • 表格支持
  • 自动处理内容调整
  • 自定义头部、底部和空列表组件
  • 固定顶部项目
  • 无限滚动、按需加载更多
  • 初始化最顶部项目索引
  • 滚动到指定项目索引的方法

十分钟搞定前端虚拟列表

Github(4.3k):https://github.com/petyosi/react-virtuoso。

原文地址:https://mp.weixin.qq.com/s/G-QQ_wi7FlTMOUNYVn5eFg

延伸 · 阅读

精彩推荐
  • 编程技术高效的前端开发工具有哪些?

    高效的前端开发工具有哪些?

    高效的前端开发工具有哪些?在互联网中许多开发工具可以让前端开发人员的工作生活变得更加轻松。应用程序的功能越来越丰富,也导致了前端开发的复...

    博学谷3842021-01-05
  • 编程技术浅谈Git分支管理策略

    浅谈Git分支管理策略

    这篇文章主要介绍了浅谈Git分支管理策略,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧 ...

    阮一峰4152020-08-17
  • 编程技术分布式锁看了又看,优秀方案我来告诉你

    分布式锁看了又看,优秀方案我来告诉你

    对于商品秒杀的场景,我们需要防止库存超卖或者重复扣款等并发问题,我们通常需要使用分布式锁,来解决共享资源竞争导致数据不一致的问题。本篇就...

    运维开发故事7112021-04-12
  • 编程技术自从尝了 Rust,Java 突然不香了

    自从尝了 Rust,Java 突然不香了

    相对而言,Rust 是软件行业中比较新的一门编程语言,如果从语法上来比较,该语言与 C++ 其实非常类似,但从另一方面而言,Rust 能更高效地提供许多功能...

    架构头条4182020-07-06
  • 编程技术软件研发效能的底层逻辑

    软件研发效能的底层逻辑

    多少Scrum敏捷教练前赴后继,但Scrum敏捷开发模式在国内实施的效果如何?其实,效果一般。根据 去年 和 今年 的调查数据,至今天真正实施Scrum敏捷开发模...

    软件质量报道6432021-12-24
  • 编程技术关于HTTPS的TSL握手

    关于HTTPS的TSL握手

    这篇文章主要介绍了关于HTTPS的TSL握手,HTTP一般基于TCP协议,而HTTPS就是在这之间加了SSL/TLS协议,那么在TCP三次握手建立TCP连接后,就需要TLS握手建立SSL/T...

    一路向东_5872023-04-25
  • 编程技术前端:使用纯css实现超实用的图标库(附源码)

    前端:使用纯css实现超实用的图标库(附源码)

    今天我们来复盘一下前端中css伪元素的知识以及如何用css伪元素来减轻javascript的压力,做出一些脑洞大开的图形。...

    趣谈前端11792021-05-11
  • 编程技术在VScode中创建你的代码模板的方法

    在VScode中创建你的代码模板的方法

    这篇文章主要介绍了在VScode中创建你的代码模板的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友...

    乐活是一种态度3692020-08-25