intermediate
useMemo
Мемоизируйте дорогие производные значения, когда отслеживание dependencies дешевле пересчёта.
`useMemo` кэширует результат вычисления между render, пока зависимости не изменились. Применяйте, когда профилирование показывает повторную тяжёлую работу — фильтрацию тысяч строк, построение lookup-таблиц или стабилизацию ссылочной идентичности объекта для memoized-потомков.
Это не гарантия актуальности; зависимости должны быть корректными. Пустой или неверный массив зависимостей даёт баги устаревших данных хуже, чем отсутствие memo. Сам по себе `useMemo` не останавливает render потомков, если дальше по дереву нет выгоды от равенства ссылок.
На интервью объясняйте концепцию на конкретном примере и называйте поведение, которое проверяют.
Типовые ошибки: скрывать поток данных, дробить компоненты чрезмерно и выполнять побочные эффекты в render.
Компромисс часто между ясностью и переиспользованием или между явными props и удобством.
Чеклист:
- Профилируйте до введения memo.
- Держите массив зависимостей честным.
- При низкой стоимости оставляйте вычисления в render.