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 документируют границы владения.