Назад к вопросам
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, так как мемоизация сама по себе имеет накладные расходы и полезна только при реальной оптимизации производительности.