Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Войти

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

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

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про React: ref, mutable, storage, performance

Можно ли хранить в ref данные, помимо ссылок на DOM-элементы?

Вопрос проверяет понимание расширенного использования ref в React для хранения любых мутабельных значений.

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

Да, в ref можно хранить любые мутабельные значения. Ref — это контейнер для данных, которые могут меняться, но не должны вызывать перерендер при изменении.

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

Что такое ref:
Ref — это объект с свойством current, которое может содержать любое значение. В отличие от состояния, изменение ref не вызывает повторный рендер компонента.

Что можно хранить в ref:

  • Ссылки на DOM-элементы

  • Таймеры и интервалы

  • Любые мутабельные значения

  • Предыдущие значения состояния

  • Сложные вычисления, которые не должны триггерить рендер

Пример использования:

function TimerComponent() {
  const intervalRef = useRef(null);
  
  const startTimer = () => {
    intervalRef.current = setInterval(() => {
      console.log('Timer tick');
    }, 1000);
  };
  
  const stopTimer = () => {
    clearInterval(intervalRef.current);
  };
  
  return (
    <div>
      <button onClick={startTimer}>Start</button>
      <button onClick={stopTimer}>Stop</button>
    </div>
  );
}

Важные особенности:

  • Изменение ref не вызывает ререндер

  • Ref сохраняется между рендерами компонента

  • Значение ref доступно немедленно после обновления

Когда использовать ref вместо state:

  • Для значений, которые не влияют на отображение

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

  • Для таймеров и подписок на события

Уровень

  • Рейтинг:

    3

  • Сложность:

    7

Навыки

  • React

    React

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

#ref

#mutable

#storage

#performance

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