Перейти к основному содержимому
Об авторе
Проекты
Знания
Знания/React Native/flatlist

Как работает `FlatList` и его ключевые оптимизации?

СобеседованиеСписки и производительность
  • Виртуализированный список: рендерит только видимые элементы + буфер
  • 10,000 элементов → ~10-20 View в памяти

Обязательные props: data, renderItem, keyExtractor

Ключевые оптимизации:

  • getItemLayout — для фиксированной высоты (критическая оптимизация, позволяет мгновенный scrollToIndex)
  • React.memo для renderItem — предотвращение ре-рендеров
  • useCallback для функции renderItem
  • keyExtractor — стабильные уникальные ID (не индекс!)

Props настройки:

  • initialNumToRender: 10 (по умолчанию)
  • maxToRenderPerBatch: 10
  • windowSize: 21 (количество экранов для буфера)
  • extraData — для внешнего состояния, влияющего на рендер

Важно: FlatList использует PureComponent → ре-рендерится только при изменении data/extraData

  • Главная
  • Об авторе
  • Проекты
  • Знания
Логотип nKolmykov