intermediate

Container and presentational split

Разделяйте данные или координацию и переиспользуемые display-компоненты, когда это проясняет владение.

Presentational-компоненты отвечают за внешний вид: получают данные и колбэки через props и содержат мало логики. Container загружает данные, держит state и передаёт результаты вниз. Разделение упрощает тесты — чистый UI отдельно от проводки данных.

Hooks и колокация размыли жёсткую границу файлов; многие команды используют feature-папки с hook и «глупым» видом. Идея сохраняется: отделить IO и оркестрацию от переиспользуемой разметки.

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

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

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

Чеклист:

  • Presentational-компоненты управляются props.
  • Container владеет источниками данных и побочными эффектами.
  • Тестируйте UI без сети при чистом разделении.