ListView 和 FlatList 有什么区别?

IT技术 reactjs react-native
2021-05-05 08:58:33

根据 Facebook 的文档,

ListView - 一个核心组件,旨在高效显示变化数据的垂直滚动列表。

FlatList - 用于呈现简单、平面列表的高性能接口。

似乎两者都很有效。从另一个中选择一个时,我们应该考虑什么?

1个回答

FlatList - 与 ListView 相比性能更高。一旦项目数量变大,ListView 渲染就会变慢。FlatList 显着提高了内存使用率和效率(特别是对于大型或复杂的列表),同时还显着简化了props——不再需要数据源!

功能
Flatlist 包含充满功能的新组件,可处理开箱即用的大多数用例:

  • 滚动加载(onEndReached)。
  • 拉动刷新(onRefresh/刷新)。
  • 可配置的可见性 (VPV) 回调 (onViewableItemsChanged / viewabilityConfig)。
  • 水平模式(horizo​​ntal)。
  • 智能项目和部分分隔符。
  • 多列支持(numColumns)
  • scrollToEnd、scrollToIndex 和 scrollToItem
  • 更好的流打字。

FlatList 仍然缺少一些功能,比如粘性标题,但它正在快速发展。ListView 将被弃用

现在不推荐使用ListView并且平面列表中的粘性标题现在可以工作

那里有更好的选择

在平面列表中渲染 5000 多个项目时,我遇到了性能问题。寻找其他替代方案并找到了recyclerlistview - React Native 和 Web 的高性能列表视图。与平面列表相比,scrollTo 性能和渲染优化要好得多。