foundation

Rendering lists

Рендерите коллекции со стабильными key, пустыми состояниями, сортировкой, фильтрацией и предсказуемой идентичностью.

Списки рендерятся через map данных в элементы внутри JSX. Каждому соседу нужен стабильный `key`, чтобы React сопоставлял элементы между render. Пустые коллекции показывайте явным empty state, а не пустотой.

Сортировку и фильтрацию обычно выполняют до render — render должен оставаться чистой функцией props и state. Не используйте индекс как key, если элементы переставляют, вставляют или удаляют; берите устойчивый id записи.

					{items.map((item) => (
  <Row key={item.id} item={item} />
))}
				

Для очень длинных списков нужны пагинация или виртуализация, но правило key неизменно: идентичность должна отражать строку данных, а не только позицию.

На интервью объясняйте концепцию на конкретном примере и называйте поведение, которое проверяют.

Типовые ошибки: скрывать поток данных, дробить компоненты чрезмерно и выполнять побочные эффекты в render.

Компромисс часто между ясностью и переиспользованием или между явными props и удобством.

Чеклист:

  • Преобразуйте данные в элементы со стабильными key.
  • Явно показывайте пустое и загрузочное состояние.
  • Готовьте отсортированные и отфильтрованные массивы до JSX.