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

Когда рекомендуется применять хук useCallback в React-компонентах?

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

sobes.tech AI

Хук useCallback в React используется для мемоизации функций, чтобы избежать их пересоздания при каждом рендере компонента.

Рекомендуется применять useCallback в следующих случаях:

  • Когда функция передается в дочерние компоненты, которые оптимизированы с помощью React.memo или shouldComponentUpdate, чтобы предотвратить ненужные повторные рендеры.
  • Когда функция используется в зависимостях других хуков, например, useEffect или useMemo, и важно, чтобы ссылка на функцию оставалась стабильной.

Пример:

import React, { useState, useCallback } from 'react';

function Parent() {
  const [count, setCount] = useState(0);

  const increment = useCallback(() => {
    setCount(c => c + 1);
  }, []); // функция не меняется при рендерах

  return <Child onClick={increment} />;
}

const Child = React.memo(({ onClick }) => {
  console.log('Child rendered');
  return <button onClick={onClick}>Increment</button>;
});

Без useCallback функция increment создавалась бы заново при каждом рендере, вызывая повторный рендер Child.

Однако не стоит злоупотреблять useCallback, так как мемоизация сама по себе имеет накладные расходы и полезна только при реальной оптимизации производительности.