# 组件设计的基本原则
单一职责
组件是否符合只实现一个职责,并且只有一个改变状态的理由
单一职责可以保证组件是最细的粒度,且有利于复用。但太细的粒度有时又会造成组件的碎片化
单一职责组件要建立在可复用的基础上,对于不可复用的单一职责组件,我们仅仅作为独立组件的内部组件即可
通用性
- 组件开发要服务于业务,为了更好的复用,又要从业务中抽离
封装
良好的组件封装应该隐藏内部细节和实现意义,并通过
props
来控制行为和输出减少访问全局变量:因为它们打破了封装,创造了不可预测的行为,并且使测试变得困难。 可以将全局变量作为组件的
props
,而不是直接引用
组合
具有多个功能的组件,应该转换为多个小组件
单一责任原则描述了如何将需求拆分为组件,封装描述了如何组织这些组件,组合描述了如何将整个系统粘合在一起
纯组件和非纯组件
非纯组件有显示的副作用,我们要尽量隔离非纯代码
将全局变量作为
props
传递给组件,而非将其注入到组件的作用域中将网络请求和组件渲染分离,只将数据传递给组件,保证组件职责的单一性,也能将非纯代码从组件中隔离
可测试
测试不仅仅是自动检测错误,更是检测组件的逻辑
如果一个组件测试不易于测试,很大可能是你的组件设计存在问题
富有意义
- 有意义的函数、变量命名,可以让代码具有良好的可读性