FlatList与ScrollView

时间:2019-03-20 08:16:40

标签: react-native

React Native中的FlatList和ScrollView有什么不同?

在应用程序中滚动视图似乎彼此相等,但是ScrollView非常简单,而不是FlatList,因此何时必须在代码中使用FlatList?

3 个答案:

答案 0 :(得分:0)

FlatList ScrollView

有很大区别

ScrollView将在组件加载后立即加载项目(其中的数据用于滚动)。因此所有数据都将装入 RAM ,并且您不能在其中使用数百或数千个项目(由于性能低下)。

但是FlatList对于此问题有一个更好的解决方案,它将在屏幕上装载10个项目(默认情况下),用户滚动查看以便装载其他项目。 这是FlatList而不是ScrollView的一大收获。

您可以在小项目(例如100个项目)中使用ScrollView,甚至在10000个项目中使用FlatList。

答案 1 :(得分:0)

它们有不同的用法。

FlatList用于呈现大量项目。如果检查documentation,则需要传递data的数组,然后使用renderItem回调来呈现数组中的每个项目。它经过优化,可以在非常大的数组中具有很好的性能,因为它实际上仅呈现当前需要显示的项目。

ScrollView用于呈现通用内容,当内容大于ScrollView本身时,它会滚动。您没有传递数据数组,但是将元素放置在ScrollView中的方式与使用普通View的方式相同。但是请注意,对于很长的内容,它并不能为平面列表提供相同的优化。

根据经验:

是否需要渲染数组中类似项目的列表?使用FlatList

是否需要在可滚动容器中呈现常规内容?使用ScrollView

答案 2 :(得分:0)

似乎没有人指出的一个很大的不同是,组件状态不是由FlatList组件维护的,而是由ScrollView维护的。这是由于ScrollView一次性渲染并维护了所有子项。同时,一旦组件离开屏幕,FlatList将卸载它们;一旦该项目从屏幕返回(状态丢失),便从头开始重新创建它们。