Sobes.tech
Middle
12

Чем отличаются контролируемые и неконтролируемые компоненты в React?

Компании, где спрашивали
нейровэд

Ответ от нейросети

sobes.tech AI

В React контролируемые компоненты (controlled components) — это компоненты формы, значения которых полностью управляются состоянием React. Значение поля хранится в state, и при изменении вызывается обработчик, который обновляет state.

Неконтролируемые компоненты (uncontrolled components) используют внутреннее состояние DOM-элемента для хранения значения, например, через ref. React не управляет значением напрямую.

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

function ControlledInput() {
  const [value, setValue] = React.useState('');
  return <input value={value} onChange={e => setValue(e.target.value)} />;
}

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

function UncontrolledInput() {
  const inputRef = React.useRef(null);
  const handleClick = () => {
    alert(inputRef.current.value);
  };
  return <>
    <input ref={inputRef} />
    <button onClick={handleClick}>Показать значение</button>
  </>;
}