Back to questions
Middle
2
В чём разница между useMemo и useCallback?
Companies where asked
Лантан
Answer from AI
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.