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.