Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Войти

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

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

© 2026 YeaHub

Документы

Медиа

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

Почему React опирается на иммутабельность состояния?

Вопрос проверяет понимание архитектурных принципов React и причин, по которым мутации считаются плохой практикой.

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

Иммутабельность позволяет React легко и быстро понимать, что данные изменились. Когда создаётся новый объект, меняется ссылка, и React может обнаружить это сравнением ссылок. Это делает обновления предсказуемыми и упрощает оптимизации. При мутациях таких гарантий нет, и поведение становится нестабильным.

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

Иммутабельность — это не требование языка, а осознанный архитектурный выбор React.

Определение

Иммутабельность состояния — это подход, при котором состояние не изменяется напрямую, а заменяется новым объектом с обновлёнными данными.

Зачем React это нужно

Перед перечислением важно понять цель: простое и быстрое определение изменений.

  1. Сравнение по ссылке

    • prevState !== nextState — быстрый и дешёвый способ понять, что есть изменения.

  2. Предсказуемость

    • состояние не может “измениться само” где-то в глубине приложения.

  3. Оптимизации

    • memo, PureComponent, useCallback работают именно на смене ссылок.

  4. Безопасность

    • старые рендеры не ломаются из-за внезапных мутаций.

Что было бы без иммутабельности

  1. Нужно было бы делать глубокие сравнения.

  2. Производительность резко бы упала.

  3. Поведение UI стало бы трудно объяснимым.

Вывод

React опирается на иммутабельность, потому что смена ссылок делает обнаружение изменений быстрым, предсказуемым и масштабируемым.

Уровень

  • Рейтинг:

    5

  • Сложность:

    6

Навыки

  • React

    React

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

#immutability

#state

#reference

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