reactjs - ListView 和 FlatList 有什么区别?

标签 reactjs react-native

根据 Facebook 的文档,

ListView - A core component designed for efficient display of vertically scrolling lists of changing data.

FlatList - A performant interface for rendering simple, flat lists.

看来两者都很有效。选择其中之一时我们应该考虑什么?

最佳答案

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

功能
Flatlist 包含具有丰富功能的新组件,可以开箱即用地处理大多数用例:

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

FlatList 仍然缺少一些功能,例如粘性标题,但它正在快速发展。 ListView 将获得 deprecated .

ListView是deprecated 现在,平面列表中的粘性标题现在可以工作

更好的选择

我在平面列表中渲染 5000 多个项目时遇到性能问题。寻找其他替代品并发现recyclerlistview - 适用于 React Native 和 Web 的高性能 ListView 。与平面列表相比,scrollTo 性能更好,渲染优化也更好。

关于reactjs - ListView 和 FlatList 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44510236/

相关文章:

javascript - 如何修复在前一个 promise 的 .then block 中处理的 .catch 中返回的停止 promise 。即 .catch 应该保留在 .catch 中

javascript - React-intl 将 React 组件渲染为 formatMessage 中的占位符

android - React Native 共享 base64 图像不起作用

javascript - 将元素放在文本框上

reactjs - 使用 React-Query Hook 有条件地调用 API

javascript - 使用 React.js 根据页面路径在网站页脚上显示不同的 CTA 按钮

reactjs - 如何 : onClick/onChange for a <select>'s <option> in a child component

javascript - 使用 @babel/plugin-proposal-nullish-coalescing-operator 和 "babel-preset-expo"

javascript - 值未传递给父组件

javascript - JSON:在文本元素中显示第三级内容(ReactJS/Native)