首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何处理反应中的大量项目列表的呈现?

如何处理反应中的大量项目列表的呈现?
EN

Stack Overflow用户
提问于 2020-07-15 13:40:57
回答 2查看 2.3K关注 0票数 4

我有一个大的项目列表,以渲染和列表数据得到实时更新的套接字-io。如何处理性能问题?它得到了大量的更新,并且呈现了很多次的项表。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-07-16 10:02:44

有几件事需要考虑:

  1. 大列表的渲染成本
  2. 更新项目

对于#1,您可以尝试使用窗口库(如反应虚拟化 ),这将使DOM的负担减轻得多,而不是呈现数千项,实际上只呈现了几十个条目。

对于#2,请确保当项更新时,只更新该项,而不更新列表。您可以使用备忘录来确保列表项只有在它们的道具更改时才会再次呈现。

票数 3
EN

Stack Overflow用户

发布于 2022-05-04 17:34:46

我在同一条船上,通过在组件中实现shouldComponentUpdate生命周期方法,以不同的方式解决了我的问题:

代码语言:javascript
复制
shouldComponentUpdate(nextProps) {
  // Note: lodash's "isEqual" method is useful for performing a deep comparison
  // of the given objects, which is more than JavaScript can do natively:
  return !_.isEqual(this.props.listItems, nextProps.listItems);
}

这也许是一个更好的整体解决方案,因为:

  • 实现起来更容易(即:不必将现有组件封装在React.memo() 特制中)
  • 它甚至在没有“备忘”(即:2018年发布的16.6.0以上版本)的早期版本中也得到了支持。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62916255

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档