Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Войти

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

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

© 2026 YeaHub

Документы

Медиа

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

Чем отличается изменение state от изменения ref в React

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

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

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

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

Определение

  • state — реактивное состояние компонента, изменение которого инициирует ререндер

  • ref — контейнер для мутабельного значения, изменение которого не влияет на рендер

Изменение state

  1. Вызывается setState / setX

  2. React планирует ререндер

  3. Компонент перерисовывается с новым состоянием

Пример:

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

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

Изменение ref

const countRef = useRef(0);

countRef.current += 1; // рендера не будет

Когда использовать

  1. state

    • данные для UI

    • результат запроса

    • флаги отображения

  2. ref

    • таймеры

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

    • ссылки на DOM

    • счётчики без UI

Вывод

Если данные должны влиять на интерфейс — используй state. Если нужно сохранить значение между рендерами без перерисовки — ref.

Уровень

  • Рейтинг:

    5

  • Сложность:

    7

Навыки

  • React

    React

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

#state

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