Good component boundaries make code easier to understand and change.
Signs you need a new component:
- Repeated UI patterns
- Self-contained functionality
- Different update frequencies
- Potential for reuse
Signs to keep together:
- Tightly coupled logic
- Always change together
- No standalone meaning
Example: A feed item with avatar, text, and actions. The avatar is reusable elsewhere. The actions update independently. Split into: FeedItem, Avatar, ActionBar.