React 组件设计有哪些原则?
TOPIC SOURCE
聚焦 React 核心思想与性能优化
说实话,当我第一次接触 React 组件设计时,总觉得这玩意儿就是写写 JSX、传传 props 那么简单。但随着项目复杂度提升,我才发现组件设计真的是一门艺术!那些看似简单的按钮、表单组件,背后其实藏着不少设计哲学。记得有次我写了个超级复杂的组件,结果维护起来简直是一场噩梦——这才让我开始认真思考组件设计的原则问题。
单一职责,组件设计的灵魂
你有没有遇到过那种一个组件做了所有事情的状况?我碰到过!一个组件既负责数据获取,又要处理 UI 渲染,还要管理状态... 结果就是每次修改都心惊胆战。现在我会把组件想象成乐高积木,每个组件只做好一件事。比如按钮组件就专心处理点击事件和样式,数据获取交给专门的 Hooks,这样代码既清晰又容易测试。
组合优于继承的智慧
React 官方文档一直强调组合的重要性,这点我深有体会。以前总想着用继承来复用代码,结果组件之间耦合得死死的。现在我会设计一些基础组件,然后通过 props 组合出更复杂的功能。就像搭积木一样,把简单的组件组合在一起,却能创造出无限可能。这种方式让代码复用变得特别自然,维护起来也轻松多了。
受控与非受控组件的取舍
这可能是初学者最容易困惑的地方了!我刚开始也分不清什么时候用受控组件,什么时候用非受控组件。后来发现,如果需要实时验证或者立即响应数据变化,受控组件是更好的选择;而如果是简单的表单,非受控组件反而更简洁。关键是要理解数据流的控制权在哪里,这直接影响到组件的可预测性。
组件设计真的不是一蹴而就的事情,需要在实践中不断摸索。有时候看着自己之前写的组件,都会忍不住想 「这写的什么玩意儿」!但正是这种不断的重构和优化,才让我们对 React 的理解越来越深。你觉得在组件设计过程中,什么原则最让你受益呢?

参与讨论
写得太真实了,我那个又长又臭的组件现在还在生产环境苟着…
受控和非受控这块我一直迷糊,能不能举个实际场景说说?