Встречается на собеседованиях • сегодня
Что нужно useCallback для избежания лишних рендеров
`useCallback` мемоизирует колбэк-функцию, предотвращая её пересоздание при каждом рендере. Это полезно, когда:
1. Функция передаётся в дочерние компоненты (особенно `React.memo`)
2. Функция используется в зависимостях `useEffect`, `useMemo` и т.д.
Пример:
```jsx
const Child = React.memo(({ onClick }) => {
console.log('Child render');
return ;
});
function Parent() {
const [count, setCount] = useState(0);
// Без useCallback при каждом рендере Parent будет создаваться новая функция
const handleClick = useCallback(() => {
setCount(c => c + 1);
}, []); // Зависимости пусты - функция создаётся один раз
return (
<>
Count: {count}
</>
);
}
```
Важно: `useCallback` не предотвращает рендеры сам по себе - он лишь сохраняет ссылку на функцию между рендерами. Для оптимизации рендеров нужно комбинировать с `React.memo`.
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы