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

useMemo и memo помогают оптимизировать производительность React-приложений, предотвращая ненужные перерасчёты и повторные рендеры.

Короткий ответ

Что ответить на собеседовании

useMemo и memo помогают оптимизировать производительность React-приложений, предотвращая ненужные перерасчёты и повторные рендеры.

Подробный разбор

Ответ с пояснениями

useMemo и memo помогают оптимизировать производительность React-приложений, предотвращая ненужные перерасчёты и повторные рендеры.

  • Когда нужны:

    • useMemo — для мемоизации вычислений, которые дорого стоят и не должны пересчитываться без изменения зависимостей.
    • memo — для обёртки компонентов, чтобы предотвратить их повторный рендер, если пропсы не изменились.
  • Когда мешают:

    • Если мемоизация добавляет сложность без реальной выгоды (например, вычисления дешёвые, а мемоизация создаёт дополнительную нагрузку).
    • При неправильном указании зависимостей в useMemo можно получить баги или лишние рендеры.
    • Если компоненты часто получают новые пропсы, memo не даст выигрыша.

Пример использования useMemo:

const expensiveValue = useMemo(() => computeExpensiveValue(a, b), [a, b]);

Пример использования memo:

const MyComponent = React.memo(({ data }) => {
  return <div>{data.text}</div>;
});

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку