Ответ
useRef
— это хук в React, который создает мутабельный (изменяемый) объект с свойством current
. Он сохраняет значение между рендерами, но не вызывает ререндер при изменении.
Основные случаи использования:
- Доступ к DOM-элементам
const inputRef = useRef(null);
<input ref={inputRef} />;
// inputRef.current.focus();
- Хранение мутабельных значений (например, таймеров, предыдущих значений)
const intervalId = useRef();
intervalId.current = setInterval(...);
// clearInterval(intervalId.current);
Отличие от useState
:
- Изменение
ref.current
не триггерит ререндер. - Значение
ref
сохраняется на протяжении всего времени жизни компонента.
⚠️ Не используйте ref
для значений, которые должны влиять на UI — для этого подходит useState
.