Вопрос проверяет понимание разницы между управляемыми (controlled) и неуправляемыми (uncontrolled) компонентами в React, что важно для управления формами и состоянием.
Управляемые (controlled) и неуправляемые (uncontrolled) компоненты — это два подхода к работе с формами в React. В управляемых компонентах состояние поля ввода хранится в React-компоненте через useState, и каждое изменение обновляет это состояние через обработчик onChange. В неуправляемых компонентах состояние хранится в самом DOM, и для доступа к значению используется useRef.
import React, { useState } from 'react';
function ControlledInput() {
const [value, setValue] = useState('');
const handleChange = (e) => setValue(e.target.value);
return (
<input
type="text"
value={value}
onChange={handleChange}
/>
);
}import React, { useRef } from 'react';
function UncontrolledInput() {
const inputRef = useRef(null);
const handleSubmit = () => {
alert(inputRef.current.value);
};
return (
<div>
<input type="text" ref={inputRef} />
<button onClick={handleSubmit}>Submit</button>
</div>
);
}Вывод: управляемые компоненты предпочтительнее в большинстве случаев, так как они делают состояние предсказуемым и упрощают тестирование. Неуправляемые компоненты могут быть полезны для интеграции с не-React кодом или для очень простых полей.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию