Middle
47
questionbank

Расскажите о различиях между управляемыми и неуправляемыми компонентами в React.

Получайте ответы на вопросы в реальном времени с Sobes Copilot
Ответ от нейросети sobes.tech

Управляемые компоненты управляют своим состоянием через useState (или классовые this.state) и получают данные и функции обратных вызовов через пропсы. Состояние формы, например, хранится в стейте React и обновляется через onChange обработчики ввода.

Неуправляемые компоненты хранят своё состояние внутри DOM. Для доступа к их значению используется useRef (или классовый React.createRef) для получения ссылки на DOM-элемент. Значение элементов формы, например, извлекается напрямую из DOM при submit.

ХарактеристикаУправляемый компонентНеуправляемый компонент
Управление состояниемReact State (useState)DOM
Доступ к значениюЧерез state и пропсыЧерез Refs (useRef)
ОбновлениеРеактивно, при каждом измененииПри явном действии (например, submit)
ВалидацияВ логике ReactЧерез стандартные HTML API или вручную после получения значения

Пример управляемого компонента:

jsx

Пример неуправляемого компонента:

jsx

Выбор между ними зависит от сложности логики и необходимости мгновенной реакции на изменения ввода. Управляемые компоненты предпочтительнее для сложных форм и необходимости валидации в реальном времени. Неуправляемые удобны для простых форм или для интеграции с сторонними DOM-библиотеками.