Sobes.tech
Назад к вопросам
Junior — Middle
67

Какой принцип отличает useMemo от useCallback в React?

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

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

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 — функцию.