React.memo по умолчанию сравнивает каждое свойство props через Object.is; совпавшие props позволяют пропустить обновление от родителя.
Как React.memo проверяет, нужно ли обновить компонент? Как он сравнивает пропсы?
React.memo по умолчанию сравнивает каждое свойство props через Object.is; совпавшие props позволяют пропустить обновление от родителя.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
React.memo по умолчанию сравнивает каждое свойство props через Object.is; совпавшие props позволяют пропустить обновление от родителя.
Глубокого сравнения вложенных объектов нет. Новая ссылка на массив, объект или callback отличается от прежней. Можно передать comparator, но он обязан учитывать всё, что влияет на вывод и поведение, иначе возникнут устаревшие данные. State и context самого компонента остаются самостоятельными причинами рендера.