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

Python Middle Без компании
В чем разница между useMemo и useCallback
Ответы
`useMemo` и `useCallback` оба служат для оптимизации производительности, но решают разные задачи. **`useMemo`** кэширует результат вычислений и пересчитывает его только при изменении зависимостей: ``` import { useMemo } from 'react'; const memoizedValue = useMemo(() => computeExpensiveValue(a, b), [a, b]); ``` **`useCallback`** кэширует саму функцию, а не её результат. Полезно для предотвращения лишних ререндеров дочерних компонентов: ``` import { useCallback } from 'react'; const memoizedCallback = useCallback(() => { doSomething(a, b); }, [a, b]); ``` **Ключевые отличия:** - `useMemo` — для значений, `useCallback` — для функций. - `useCallback(fn, deps)` эквивалентен `useMemo(() => fn, deps)`. - Используй `useCallback`, когда передаёшь функцию как проп в оптимизированные компоненты (например, `React.memo`).