Как React.memo проверяет, нужно ли обновить компонент? Как он сравнивает пропсы?

React.memo по умолчанию сравнивает каждое свойство props через Object.is; совпавшие props позволяют пропустить обновление от родителя.

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

Что ответить на собеседовании

React.memo по умолчанию сравнивает каждое свойство props через Object.is; совпавшие props позволяют пропустить обновление от родителя.

Подробный разбор

Ответ с пояснениями

React.memo по умолчанию сравнивает каждое свойство props через Object.is; совпавшие props позволяют пропустить обновление от родителя.

Глубокого сравнения вложенных объектов нет. Новая ссылка на массив, объект или callback отличается от прежней. Можно передать comparator, но он обязан учитывать всё, что влияет на вывод и поведение, иначе возникнут устаревшие данные. State и context самого компонента остаются самостоятельными причинами рендера.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее