React Native中的FlatList和ScrollView有什么不同?
在应用程序中滚动视图似乎彼此相等,但是ScrollView非常简单,而不是FlatList,因此何时必须在代码中使用FlatList?
答案 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将卸载它们;一旦该项目从屏幕返回(状态丢失),便从头开始重新创建它们。