2017-03-03 80 views

回答

5

在你的情況,ListView和滾動型,你應該特別注意的主要區別是該組件是如何呈現這些子元素。 ScrollView一次呈現其子元素。 ListView有一些額外的功能,可讓您平滑地向下滾動可能無限數量的元素列表。引述documentation,這裏有表現的ListView增強功能:

  1. 只有重新渲染更改的行 - 提供給數據源的rowHasChanged函數告訴ListView中如果需要重新呈現行,因爲源數據已更改 - 請參閱ListViewDataSource以獲取更多詳細信息。

  2. 限制速率的行渲染 - 默認情況下,每個事件循環僅渲染一行(可使用pageSize道具進行自定義)。這將工作分解爲更小的塊,以減少渲染行時丟幀的機會。

使用滾動型肯定會影響內存使用和性能,因爲它呈現在一旦所有的子組件,它會重新渲染組件即使數據沒有變化呈現許多動態數據。所以,如果你只能在這種情況下使用二者中的任何使用ListView組件。

如果您正在使用RN V> = 0.43,那麼最好的選擇是使用FlatList組件。使用它的主要優點是它僅在需要時呈現組件(延遲加載)。

有關更深入的解釋,我強烈推薦official RN documentation