intermediate

Memoization

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

`React.memo` пропускает render при поверхностном равенстве props. Сочетайте с `useMemo` и `useCallback`, когда потомки или effects зависят от стабильности ссылок. Memo имеет стоимость сравнения и может скрыть ошибки в зависимостях.

Сначала ясность; добавляйте memo, когда профайлер показывает горячие render потомков с неизменными props. Пользовательские компараторы редки и легко ломаются.

На интервью объясняйте концепцию на конкретном примере и называйте поведение, которое проверяют.

Типовые ошибки: скрывать поток данных, дробить компоненты чрезмерно и выполнять побочные эффекты в render.

Компромисс часто между ясностью и переиспользованием или между явными props и удобством.

Чеклист:

  • Memo для потомков с дорогим render.
  • Стабилизируйте колбэки, уходящие в memoized-потомки.
  • Проверяйте профайлером, а не предположениями.