您当前的位置:首页 > 电脑百科 > 程序开发 > 前端

十分钟搞定前端虚拟列表

时间:2023-11-30 13:20:39  来源:微信公众号  作者:前端充电宝

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

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。



Tags:前端   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
20k级别前端是怎么使用LocalStorage的,想知道吗?
当咱们把咱们想缓存的东西,存在localStorage、sessionStorage中,在开发过程中,确实有利于咱们的开发,咱们想看的时候也是一目了然,点击Application就可以看到。前言大家好,我是林...【详细内容】
2024-03-26  Search: 前端  点击:(10)  评论:(0)  加入收藏
前端不存在了?盲测64%的人更喜欢GPT-4V的设计,杨笛一等团队新作
3 月 9 日央视的一档节目上,百度创始人、董事长兼 CEO 李彦宏指出,以后不会存在「程序员」这种职业了,因为只要会说话,人人都会具备程序员的能力。「未来的编程语言只会剩下两种...【详细内容】
2024-03-11  Search: 前端  点击:(9)  评论:(0)  加入收藏
前端开始“锈化”?Vue团队开源JS打包工具:基于Rust、速度极快、尤雨溪主导
Vue 团队已正式开源Rolldown —— 基于 Rust 的 JavaScrip 打包工具。Rolldown 是使用 Rust 开发的 Rollup 替代品,它提供与 Rollup 兼容的应用程序接口和插件接口...【详细内容】
2024-03-09  Search: 前端  点击:(11)  评论:(0)  加入收藏
两年前端经验还不会手写Promise?
什么是promise?当我们处理异步操作时,我们经常需要进行一系列的操作,如请求数据、处理数据、渲染UI等。在过去,这些操作通常通过回调函数来处理,但是回调函数嵌套过多会导致代码...【详细内容】
2024-03-07  Search: 前端  点击:(23)  评论:(0)  加入收藏
十个前端冷门但好用的前端工具函数库
本文推荐十个冷门但好用的前端工具函数仓库,它们可能没有很高的知名度,但却能为你解决实际问题,提高开发效率。在前端开发中,有时候我们会遇到一些常见的功能需求,但却不知道从哪...【详细内容】
2024-02-27  Search: 前端  点击:(21)  评论:(0)  加入收藏
前端开发:Visual Studio Code和Visual studio如何选?
Visual Studio Code和Visual studio都是微软的集成开发环境(IDE),那么在实际工作中该如何选择呢。贝格前端工场对二者做一番对比,帮助您决策一下。一、Visual Studio Code的介绍...【详细内容】
2024-02-27  Search: 前端  点击:(44)  评论:(0)  加入收藏
网站开发中的前端和后端开发有什么区别
前端开发和后端开发都是干什么的?有哪些区别?通俗地讲,前端干的工作是用户可以直接看得见的,而后端开发的工作主要在服务端,用户不太能直接看到。虽然前端开发和后端开发的工作有...【详细内容】
2024-02-21  Search: 前端  点击:(31)  评论:(0)  加入收藏
一段微信小程序前端与后端连接的代码,带注解
微信小程序的前端和后端连接通常涉及到使用微信小程序提供的网络请求API与后端服务器进行通信。以下是一个简单的示例,展示如何使用微信小程序的前端代码向后端发送请求并处...【详细内容】
2024-01-24  Search: 前端  点击:(55)  评论:(0)  加入收藏
如何优雅的实现前端国际化?
JavaScript 中每个常见问题都有许多成熟的解决方案。当然,国际化 (i18n) 也不例外,有很多成熟的 JavaScript i18n 库可供选择,下面就来分享一些热门的前端国际化库!i18nexti18ne...【详细内容】
2024-01-17  Search: 前端  点击:(67)  评论:(0)  加入收藏
JavaScript前端框架2024年展望
Angular、Next.js、React和Solid的维护者和创作者们展望2024年,分享了他们计划中的改进。译自2024 Predictions by JavaScript Frontend Framework Maintainers,作者 Loraine...【详细内容】
2024-01-05  Search: 前端  点击:(89)  评论:(0)  加入收藏
▌简易百科推荐
20k级别前端是怎么使用LocalStorage的,想知道吗?
当咱们把咱们想缓存的东西,存在localStorage、sessionStorage中,在开发过程中,确实有利于咱们的开发,咱们想看的时候也是一目了然,点击Application就可以看到。前言大家好,我是林...【详细内容】
2024-03-26  前端之神  微信公众号  Tags:前端   点击:(10)  评论:(0)  加入收藏
前端不存在了?盲测64%的人更喜欢GPT-4V的设计,杨笛一等团队新作
3 月 9 日央视的一档节目上,百度创始人、董事长兼 CEO 李彦宏指出,以后不会存在「程序员」这种职业了,因为只要会说话,人人都会具备程序员的能力。「未来的编程语言只会剩下两种...【详细内容】
2024-03-11  机器之心Pro    Tags:前端   点击:(9)  评论:(0)  加入收藏
前端开始“锈化”?Vue团队开源JS打包工具:基于Rust、速度极快、尤雨溪主导
Vue 团队已正式开源Rolldown —— 基于 Rust 的 JavaScrip 打包工具。Rolldown 是使用 Rust 开发的 Rollup 替代品,它提供与 Rollup 兼容的应用程序接口和插件接口...【详细内容】
2024-03-09  OSC开源社区    Tags:Vue   点击:(11)  评论:(0)  加入收藏
两年前端经验还不会手写Promise?
什么是promise?当我们处理异步操作时,我们经常需要进行一系列的操作,如请求数据、处理数据、渲染UI等。在过去,这些操作通常通过回调函数来处理,但是回调函数嵌套过多会导致代码...【详细内容】
2024-03-07  海燕技术栈  微信公众号  Tags:Promise   点击:(23)  评论:(0)  加入收藏
网站开发中的前端和后端开发有什么区别
前端开发和后端开发都是干什么的?有哪些区别?通俗地讲,前端干的工作是用户可以直接看得见的,而后端开发的工作主要在服务端,用户不太能直接看到。虽然前端开发和后端开发的工作有...【详细内容】
2024-02-21  CarryData    Tags:前端   点击:(31)  评论:(0)  加入收藏
网站程序开发中的前后端分离技术
随着互联网的快速发展和技术的不断创新,传统的网站开发模式已经难以满足日益增长的业务需求。为了提高开发效率、增强系统的可维护性和可扩展性,前后端分离技术逐渐成为了网站...【详细内容】
2024-01-31  网站建设派迪星航    Tags:前后端分离   点击:(23)  评论:(0)  加入收藏
如何优雅的实现前端国际化?
JavaScript 中每个常见问题都有许多成熟的解决方案。当然,国际化 (i18n) 也不例外,有很多成熟的 JavaScript i18n 库可供选择,下面就来分享一些热门的前端国际化库!i18nexti18ne...【详细内容】
2024-01-17  前端充电宝  微信公众号  Tags:前端   点击:(67)  评论:(0)  加入收藏
Vue中Scope是怎么做样式隔离的?
scope样式隔离在 Vue 中,样式隔离是通过 scoped 特性实现的。当在一个组件的 <style> 标签上添加 scoped 特性时,Vue 会自动为这个样式块中的所有选择器添加一个唯一的属性,以...【详细内容】
2024-01-04  海燕技术栈  微信公众号  Tags:Vue   点击:(80)  评论:(0)  加入收藏
vue3中 ref和 reactive的区别 ?
最近有朋友在面试过程中经常被问到这么一个问题,vue3 中的ref 和 reactive的区别在哪里,为什么 要定义两个API 一个 api不能实现 响应式更新吗??带着这个疑问 ,我们 接下来进行逐...【详细内容】
2024-01-03  互联网高级架构师  今日头条  Tags:vue3   点击:(36)  评论:(0)  加入收藏
React18 与 Vue3 全方面对比
1. 编程风格 & 视图风格1.1 编程风格 React 语法少、难度大;Vue 语法多,难度小例如指令:Vue<input v-model="username"/><ul> <li v-for="(item,index) in list" :key="inde...【详细内容】
2024-01-03  爱做梦的程序员  今日头条  Tags:Vue3   点击:(72)  评论:(0)  加入收藏
站内最新
站内热门
站内头条