Вопрос проверяет понимание мутабельных данных и оптимизации ререндеров.
ref используют для хранения данных, которые меняются со временем, но не должны вызывать ререндер. Это позволяет избежать лишних обновлений UI и повысить производительность. ref сохраняет значение между рендерами и доступен синхронно. React игнорирует изменения ref.current.
useRef — это хук, который возвращает объект с полем current, предназначенный для хранения мутабельных значений.
stateЕсли использовать state:
каждое изменение вызовет ререндер
UI будет обновляться без необходимости
возможны проблемы с производительностью
refТаймеры и интервалы
Счётчики событий
Предыдущее значение пропса или state
Флаги жизненного цикла
const prevCount = useRef(count);
useEffect(() => {
prevCount.current = count;
}, [count]);
const timerId = useRef(null);
timerId.current = setTimeout(() => {
// логика
}, 1000);
Изменение ref.current не инициирует ререндер
Значение доступно сразу
ref живёт столько же, сколько компонент
ref — это инструмент для управления мутабельным состоянием вне рендера. Он нужен, когда важна производительность и контроль, а не отображение данных.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию