Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Войти

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

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

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про React: render, component, tree

Почему изменение state родительского компонента вызывает ререндер дочерних?

Вопрос нужен, чтобы оценить, понимает ли кандидат, как React распространяет обновления по дереву компонентов.

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

При изменении state родителя React повторно вызывает его render-функцию. Все дочерние компоненты также перерисовываются, потому что React не знает, изменились ли их данные. Это базовое поведение React. Оптимизация возможна через мемоизацию.

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

Ререндер в React — это не обновление DOM, а повторный расчёт UI.

Как работает обновление

Когда меняется state:

  1. React вызывает render родителя

  2. Создаётся новое виртуальное дерево

  3. Дочерние компоненты вызываются заново

Это происходит даже если их props остались прежними.

Почему React так делает

  • простая и предсказуемая модель

  • отсутствие глубоких сравнений по умолчанию

  • высокая скорость диффинга

Как избежать лишних ререндеров

  1. React.memo для функциональных компонентов

  2. PureComponent для классов

  3. разделение state

  4. вынос неизменяемых частей дерева

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

Ререндер дочерних компонентов — это нормальное поведение React. Оптимизация достигается не запретами, а правильным разделением состояния и мемоизацией.

Уровень

  • Рейтинг:

    5

  • Сложность:

    4

Навыки

  • React

    React

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

#render

#component

#tree

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