foundation

Conditional rendering

Выбирайте ветки UI через булевы значения, конечные автоматы, ранние return и явные состояния загрузки или ошибки.

Условный UI можно строить через `if` до return, тернарный оператор, логическое `&&` или ранний return для веток загрузки и ошибки. Выбирайте стиль, при котором основной сценарий читается легко. Вложенные тернарники часто ухудшают ясность — вынесите компоненты или переменные.

Асинхронную работу моделируйте явными состояниями: idle, loading, success, error. Небольшая state machine проще в тестах, чем разрозненные булевы флаги. Не рендерьте `0` случайно через `{count && <Badge />}`, когда ноль валиден — используйте булеву проверку или сравнение.

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

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

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

Чеклист:

  • Разделяйте UI загрузки, пустоты, ошибки и успеха.
  • Избегайте ловушки `&&` с числовым нулём.
  • Предпочитайте именованные компоненты глубоким inline-тернарникам.