intermediate

useCallback

Стабилизируйте идентичность callback для мемоизированных дочерних компонентов и dependencies в effects, не скрывая устаревшие значения.

`useCallback` возвращает мемоизированную ссылку на функцию, пока зависимости не изменились. Помогает, когда memoized-потомок сравнивает props по ссылке или когда function указана в зависимостях effect.

Он не замораживает захваченные значения — устаревшие замыкания возможны при неполных зависимостях. Оборачивание каждого inline-обработчика добавляет накладные расходы без пользы, если дальше по дереву не нужна стабильная идентичность. Часто проще вынести потомка или принять лишние render.

					const onSelect = useCallback((id) => {
  setSelected(id);
}, []);
				

На интервью объясняйте концепцию на конкретном примере и называйте поведение, которое проверяют.

Типовые ошибки: скрывать поток данных, дробить компоненты чрезмерно и выполнять побочные эффекты в render.

Компромисс часто между ясностью и переиспользованием или между явными props и удобством.

Чеклист:

  • Стабилизируйте колбэки для memoized-потомков или deps effect.
  • Включайте в зависимости значения, которые читает колбэк.
  • Не оборачивайте все обработчики подряд.