Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про React: useref

Вызывает ли изменение ref.current перерендер компонента?

Вопрос проверяет понимание различий между состоянием и ссылками в React и их влияния на рендеринг.

Короткий ответ

Изменение ref.current не вызывает перерендер компонента.
React не отслеживает изменения внутри ref.
Это сделано намеренно для хранения служебных данных.
Поэтому useRef подходит для значений, которые не должны влиять на UI.

Длинный ответ

Важно чётко понимать, какие изменения React отслеживает, а какие — нет.

Определение

ref.current — это мутабельное поле объекта, возвращаемого useRef, изменения которого не участвуют в механизме рендеринга React.

Почему перерендер не происходит

React:

  • отслеживает изменения state и props

  • не подписывается на изменения ref.current

  • считает ref хранилищем вне UI-логики

const countRef = useRef(0);

countRef.current += 1;
// компонент не перерендерится

Когда это полезно

Такое поведение удобно для:

  • хранения таймеров

  • хранения предыдущих значений

  • счётчиков, не влияющих на интерфейс

  • интеграций с внешними API

Частая ошибка

Новички часто:

  • пытаются хранить данные UI в ref

  • ожидают автоматическое обновление интерфейса

Если данные влияют на отображение, нужно использовать useState.

Краткий вывод

Изменение ref.current не вызывает перерендер. useRef предназначен для данных, не связанных с UI.

Уровень

  • Рейтинг:

    5

  • Сложность:

    5

Навыки

  • React

    React

Ключевые слова

#useref

Подпишись на React Developer в телеграм