Как работает `FlatList` и его ключевые оптимизации?
- Виртуализированный список: рендерит только видимые элементы + буфер
- 10,000 элементов → ~10-20 View в памяти
Обязательные props: data, renderItem, keyExtractor
Ключевые оптимизации:
getItemLayout— для фиксированной высоты (критическая оптимизация, позволяет мгновенныйscrollToIndex)React.memoдляrenderItem— предотвращение ре-рендеровuseCallbackдля функцииrenderItemkeyExtractor— стабильные уникальные ID (не индекс!)
Props настройки:
initialNumToRender: 10 (по умолчанию)maxToRenderPerBatch: 10windowSize: 21 (количество экранов для буфера)extraData— для внешнего состояния, влияющего на рендер
Важно: FlatList использует PureComponent → ре-рендерится только при изменении data/extraData