foundation

Controlled components

Держите user input state owned by component или caller осознанно, чтобы validation, reset и synchronization были predictable.

Controlled components держат value и change handlers в React state или props родителя — validation, reset и синхронизация полей предсказуемы. Uncontrolled отдают управление DOM ref. Выбирайте осознанно по сложности формы и a11y.

На интервью: controlled vs uncontrolled и синхронизация с внешними stores. Производительность больших форм.

Типовые ошибки: смешение controlled/uncontrolled на одном input; stale closures в onChange; лишние re-renders на keystroke без debounce.

Компромисс — гибкость против сложности: знайте, когда достаточно более простого пути.

Чеклист:

  • Один source of truth для value поля.
  • Явные handlers обновляют state immutably.
  • Default values один раз для uncontrolled.
  • Form libraries документируют границы владения.