比较性能scrollView VS listView in native native

时间:2017-03-03 07:39:13

标签: react-native

我需要知道哪两种方法更适合实现具有庞大数据集的高性能列表。

滚动浏览列表:http://blog.getchop.io/2016/03/26/fast-and-fluid-infinite-list-with-react-native/

ListView:https://github.com/remobile/react-native-refresh-infinite-listview

1 个答案:

答案 0 :(得分:4)

在您的情况下,您应特别注意的ListView和ScrollView之间的主要区别在于组件如何呈现子元素。 ScrollView一次渲染其子元素。 ListView具有一些附加功能,允许您平滑地向下滚动可能无限数量的元素列表。引用documentation,以下是ListView中的性能增强功能:

  
      
  1. 仅重新呈现已更改的行 - 提供给数据源的rowHasChanged函数告诉ListView是否需要重新呈现行,因为源数据已更改 - 有关详细信息,请参阅ListViewDataSource。

  2.   
  3. 速率限制行渲染 - 默认情况下,每个事件循环只渲染一行(使用pageSize道具可自定义)。这会将工作分解为更小的块,以减少渲染行时丢帧的可能性。

  4.   

使用ScrollView渲染许多动态数据肯定会影响内存使用和性能,因为它会立即呈现所有子组件,即使数据没有更改,它也会重新呈现组件。因此,如果您在这种情况下只能使用两者中的任何一个,请使用ListView组件。

如果您使用RN v> = 0.43,那么最好的选择是使用FlatList组件。使用它的主要优点是它只在需要时才提供组件(延迟加载)。

如需更深入的解释,我强烈推荐official RN documentation