intermediate
useCallback
Стабилизируйте идентичность callback для мемоизированных дочерних компонентов и dependencies в effects, не скрывая устаревшие значения.
`useCallback` возвращает мемоизированную ссылку на функцию, пока зависимости не изменились. Помогает, когда memoized-потомок сравнивает props по ссылке или когда function указана в зависимостях effect.
Он не замораживает захваченные значения — устаревшие замыкания возможны при неполных зависимостях. Оборачивание каждого inline-обработчика добавляет накладные расходы без пользы, если дальше по дереву не нужна стабильная идентичность. Часто проще вынести потомка или принять лишние render.
const onSelect = useCallback((id) => {
setSelected(id);
}, []);
На интервью объясняйте концепцию на конкретном примере и называйте поведение, которое проверяют.
Типовые ошибки: скрывать поток данных, дробить компоненты чрезмерно и выполнять побочные эффекты в render.
Компромисс часто между ясностью и переиспользованием или между явными props и удобством.
Чеклист:
- Стабилизируйте колбэки для memoized-потомков или deps effect.
- Включайте в зависимости значения, которые читает колбэк.
- Не оборачивайте все обработчики подряд.