Sobes.tech
Назад к вопросам
Middle
1

В чём разница между useMemo и useCallback?

Компании, где спрашивали
Лантан

Ответ от нейросети

sobes.tech AI

useMemo и useCallback — это хуки React, которые помогают оптимизировать производительность, но служат разным целям:

  • useMemo — мемоизирует значение, то есть возвращает кэшированный результат вычисления функции, чтобы не пересчитывать его при каждом рендере, если зависимости не изменились.

  • useCallback — мемоизирует саму функцию, возвращая ту же ссылку на функцию между рендерами, если зависимости не изменились.

Пример:

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

const memoizedCallback = useCallback(() => {
  doSomething(a, b);
}, [a, b]);

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