Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Войти

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

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

© 2026 YeaHub

Документы

Медиа

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

Чем useRef отличается от useState?

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

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

useState используется для хранения данных, изменение которых должно вызывать перерендер компонента. useRef хранит изменяемое значение, изменение которого не вызывает перерендер. useRef часто применяют для доступа к DOM-элементам или для хранения технических значений (таймеры, предыдущие значения). Выбор зависит от того, влияет ли изменение значения на отображение UI.

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

Хотя useRef и useState могут хранить данные между рендерами, их назначение разное.

Определение

  • useState — хук для хранения состояния, влияющего на UI.

  • useRef — хук для хранения изменяемой ссылки, не влияющей на рендер.

useState

const [count, setCount] = useState(0);

setCount(count + 1); // вызывает перерендер

Особенности

  1. Изменение состояния вызывает повторный рендер.

  2. Используется для данных, отображаемых в UI.

  3. Обновления могут батчиться.

useRef

const renderCount = useRef(0);

renderCount.current += 1; // перерендер не вызывается

Особенности

  1. Значение хранится в ref.current.

  2. Изменение current не вызывает рендер.

  3. Значение сохраняется между рендерами.

Типичные сценарии для useRef

  1. Доступ к DOM-элементам.

  2. Хранение setTimeout / setInterval id.

  3. Хранение предыдущего значения состояния.

  4. Флаги и счётчики, не влияющие на UI.

Вывод

useState — для данных интерфейса, useRef — для технических и служебных значений, которые не должны вызывать перерендер.

Уровень

  • Рейтинг:

    5

  • Сложность:

    5

Навыки

  • React

    React

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

#useref

#usestate

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