Ответ
useCallback
— это хук React, который мемоизирует функцию, предотвращая её пересоздание при каждом рендере. Это полезно для оптимизации производительности, особенно когда функция передаётся в дочерние компоненты, зависящие от сравнения пропсов (например, React.memo
или useEffect
).
Пример:
const MyComponent = () => {
const [count, setCount] = useState(0);
const handleClick = useCallback(() => {
setCount(prev => prev + 1);
}, []); // Зависимости пусты — функция создаётся один раз
return <Child onClick={handleClick} />;
};
Когда использовать:
- Функция передаётся в оптимизированный дочерний компонент (
React.memo
). - Функция используется в зависимостях хуков (например,
useEffect
).
Важно: Не злоупотребляйте useCallback
— лишняя мемоизация может ухудшить производительность.