> Что такое React.memo и как он помогает оптимизировать рендеринг (React)
Уровень: junior · Роль: frontend · Категория: Технические вопросы
Компании: Иннотех, Альфа-банк, Soft_Media_Group, Sminex, Kodix, Aston, Домклик, Swetec, EPAM, intelsy, Сфера, Кэтрид Диджитал, SmartWay
Стек: React
> Пример ответа
React.memo - это компонент высшего порядка (HOC) в React, который оптимизирует производительность за счёт мемоизации результата рендеринга функционального компонента. Он предотвращает повторный рендеринг компонента, если его пропсы не изменились (поверхностное сравнение).
Как работает:
React.memo оборачивает компонент и сравнивает новые пропсы с предыдущими с помощью Object.is (или кастомной функции сравнения, переданной вторым аргументом). Если пропсы остались теми же, React пропускает рендеринг и использует закешированный результат.
Пример:
JSXconst ExpensiveComponent = React.memo(({ data }) => {// Тяжелые вычисления или рендерингreturn <div>{data}</div>;});
Когда использовать:
-
Компонент часто ререндерится из-за изменений в родителе, но его собственные пропсы редко меняются.
-
Компонент содержит дорогие операции (рендеринг списков, графиков, анимаций).
Ограничения:
-
Неэффективен при частом изменении пропсов (сравнение всё равно происходит).
-
Не заменяет
useMemo/useCallbackдля объектов или функций, передаваемых как пропсы (их нужно мемоизировать отдельно, иначе сравнение всегда будетfalse).
Таким образом, React.memo - это простой инструмент для снижения числа ненужных ререндеров, но его применение должно быть обоснованным, чтобы не усложнять код без реальной выгоды.
> Похожие задачи по frontend
Как работает жизненный цикл React-компонентов
Как работает useRef хук в React и для чего он используется
Что такое виртуальный DOM и зачем он нужен
Что такое dangerouslySetInnerHTML в React и для чего он нужен
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью