intermediate

Hooks as behavior reuse

Выносите stateful behavior в custom hooks, сохраняя render output, effects и ownership rules explicit.

Custom hooks выносят stateful behavior — data fetching, subscriptions, form logic, media queries — а компоненты фокусируются на рендере. Rules of Hooks требуют стабильного порядка вызовов и явного владения effects и cleanup. Хорошие hooks дают маленький return API и скрывают детали.

На интервью: вынесите дублированный `useEffect` в hook. dependency arrays, stale data, тесты через render hooks.

Типовые ошибки: fetch в каждом consumer без deduplication; нестабильные return objects и лишние rerenders; скрытые side effects.

Компромисс — гибкость против сложности: знайте, когда достаточно более простого пути.

Чеклист:

  • Имя hook с `use` и Rules of Hooks.
  • Effects чистят subscriptions и timers.
  • Стабильные ссылки в return где возможно.
  • Документируйте нужные providers или context.