Назад к вопросам
Jetlend
Junior — Middle
67
Какой принцип отличает useMemo от useCallback в React?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
Главное отличие между useMemo и useCallback в React заключается в том, что:
- useMemo мемоизирует значение, возвращаемое функцией.
- useCallback мемоизирует саму функцию, возвращая её же.
То есть useMemo используется, когда нужно запомнить результат вычисления (например, сложное вычисление), чтобы не пересчитывать его при каждом рендере, а useCallback — когда нужно сохранить ссылку на функцию, чтобы не создавать её заново, что важно при передаче функций в дочерние компоненты или оптимизации с React.memo.
Пример:
const memoizedValue = useMemo(() => computeExpensiveValue(a, b), [a, b]);
const memoizedCallback = useCallback(() => doSomething(a), [a]);
Таким образом, useMemo возвращает значение, а useCallback — функцию.