Выбор ответа Junior Списки и производительность спрашивают часто обновлено

React Native: ScrollView или FlatList

Вопрос

Почему для списка из 2000 элементов используют FlatList, а не ScrollView с map?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: FlatList виртуализирует список, а ScrollView рендерит всех детей. ScrollView создаёт все 2000 элементов и их нативные представления: долгий первый рендер и много памяти.

Варианты ответа

  1. ScrollView не умеет прокручиваться вертикально без дополнительной настройки
  2. FlatList сам загружает данные с сервера порциями по мере прокрутки
  3. FlatList виртуализирует список, а ScrollView рендерит всех детейправильный ответ
  4. ScrollView работает только на iOS, а на Android для списков нужен FlatList

Разбор

ScrollView создаёт все 2000 элементов и их нативные представления: долгий первый рендер и много памяти. FlatList рендерит окно вокруг видимой области, остальное заменяет пустым местом. Данные он не грузит сам, а ScrollView прокручивается в любом направлении на обеих платформах.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме