React.memo сравнивает props через Object.is: одинаковые примитивы совпадают, а заново созданные объекты и функции обычно имеют другую ссылку.
[имя] почему различие примитивов и объектов важно для React.memo и как избежать лишнего рендера из-за новой функции?
React.memo сравнивает props через Object.is: одинаковые примитивы совпадают, а заново созданные объекты и функции обычно имеют другую ссылку.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
React.memo сравнивает props через Object.is: одинаковые примитивы совпадают, а заново созданные объекты и функции обычно имеют другую ссылку.
Если родитель каждый раз передаёт новую функцию, useCallback с корректными зависимостями может сохранить её идентичность. Но мемоизация нужна только при полезной границе и измеримом выигрыше. Нельзя игнорировать callback в comparator, если он захватывает меняющиеся данные: ребёнок может получить устаревшее поведение.