reactjs - React 中的延迟加载和列表虚拟化有什么区别?
问题描述
最近在工作的一个项目中,我最近为同时渲染的多个列表组件实现了延迟加载,这导致了性能问题。然而,今天我在 React Docs 上发现了一个叫做 List Virtualization 的东西。
我目前使用的包: https ://www.npmjs.com/package/react-lazyload
官方文档中推荐的列表虚拟化包之一:https ://github.com/bvaughn/react-virtualized
如果有人可以解释两者之间的区别,我将不胜感激。谢谢
解决方案
参加聚会有点晚了,但我会在这里加上我个人收集的两美分,这是广泛的区别。
延迟加载的想法是进行异步调用以获取出现在视口中的新数据(从 API 端点、存储等)。这改善了用户体验,因为用户不需要等待所有数据一次加载,而只需等待视口中需要的数据。社交媒体平台Triller是一个很好的示例,该网站懒惰地将内容加载到视口中,以在用户滚动时产生无限的提要。延迟加载只涉及获取后续数据并将其加载到视口中。
虚拟化类似,但只呈现视口中的内容。正如之前获取的数据离开视口一样,这些 DOM 节点也是如此。这改善了用户体验,因为长时间滚动的用户将拥有许多 DOM 节点,因此可能会注意到性能下降。社交媒体平台Instagram是一个利用虚拟化作为提要的网站的一个很好的例子。当用户滚动时,只有少数帖子会保持加载在 DOM 中。
请参阅下图以获取可视化表示:
推荐阅读
- regex - 多行 Bash 正则表达式匹配
- python - PyPDF2 - getFromTextFields 的问题
- vba - 多个输入框创建不同的电子邮件
- kubernetes - 基于路径的路由问题 Traefik 作为 Ingress Controller
- c# - WebAPI2 Post 方法的单元测试方法
- eslint - Eslint:“jsx-a11y/label-has-for”无效
- vue.js - 在 vue 中通过 axios 请求时未定义函数
- php - ACF - 如果字段为空,如何不显示数据
- r - r shiny rhandsontable:为复制和粘贴数据创建空表
- javascript - 如何使用复选框创建自定义列表项?