Вопрос проверяет понимание работы неконтролируемых компонентов в React и использования ref для доступа к DOM-элементам.
В React компоненты могут быть контролируемыми или неконтролируемыми. Неконтролируемые компоненты хранят своё состояние в DOM, а не в React-состоянии. Это полезно, когда вам не нужно отслеживать каждое изменение ввода, а требуется получить значение только в определённый момент, например, при отправке формы.
Для доступа к DOM-элементу неконтролируемого input используется хук useRef. Он создаёт объект ref, который можно привязать к элементу через атрибут ref. После этого значение input доступно через ref.current.value.
import React, { useRef } from 'react';
function MyForm() {
const inputRef = useRef(null);
const handleSubmit = (e) => {
e.preventDefault();
alert('Значение: ' + inputRef.current.value);
};
return (
<form onSubmit={handleSubmit}>
<input type="text" ref={inputRef} defaultValue="" />
<button type="submit">Отправить</button>
</form>
);
}В этом примере input не контролируется React — его значение управляется браузером. При отправке формы мы получаем значение через ref.
Неконтролируемые компоненты с ref удобны для простых форм, интеграции с не-React кодом или когда не требуется валидация в реальном времени. Однако для сложных форм с динамической валидацией лучше использовать контролируемые компоненты.
Уровень
Рейтинг:
4
Сложность:
3
Навыки
JavaScript
React
Ключевые слова
Подпишись на React Developer в телеграм
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию