Ответ
- Композиция компонентов - разбиение на мелкие независимые части, которые можно комбинировать (как Lego). Пример: кнопка с иконкой и текстом.
<Button>
<Icon name="user" />
<Text>Login</Text>
</Button>
- Props-контроль - компонент должен быть гибким через пропсы (children, className, стили). Пример:
function Card({ children, className }) {
return <div className={`card ${className}`}>{children}</div>
}
- Render Props/HOC - для логического переиспользования. Пример:
<DataFetcher render={(data) => <List items={data} />} />
-
Compound Components - связанные компоненты, разделяющие состояние (например, Tabs).
-
Custom Hooks - вынос общей логики в хуки.
-
Контекст - для передачи данных без пропс-дриллинга.
-
Дизайн-система - единые правила стилей, API и документации.
Главное - компонент должен делать одну вещь, быть предсказуемым и документированным.