组件设计

一、是什么

组件设计是指将 UI 和业务逻辑拆分为高内聚、低耦合的模块单元。

二、为什么

好的组件设计可以:

  • 提升复用性
  • 提高开发效率
  • 降低维护成本

三、核心原则

1. 单一职责

一个组件只做一件事

2. 可复用性

<Button type="primary" loading />

👉 避免写死业务逻辑

3. 可组合性(Composition)

<Card>
  <Card.Header />
  <Card.Body />
</Card>

4. 受控 / 非受控

// 受控
<Input value={value} onChange={setValue} />

// 非受控
<Input defaultValue="test" />

四、高级设计

  • Headless UI(逻辑与 UI 分离)
  • Hooks 抽离逻辑
  • Compound Component(复合组件)

五、最佳实践

  • Props 设计清晰(类型 + 默认值)
  • 避免 Props drilling → Context
  • 业务组件 vs 通用组件分层