在React大生态中,一个相对成熟的前端团队都会面临一个问题:如何提高团队的开发效率?一个系统有大量的业务场景和业务代码,类似的页面和代码层出不穷。如何管理和抽象这些相似的代码和模块,绝对是很多团队都会遇到的问题。不断复制代码?或者抽象成UI组件或者业务组件?显然后者效率更高。所以现在我们面临一个选择:一是选择React生态中已有的组件库,比如antDesign、Material-UI等相对成熟的组件库;另一种是为团队开发一套自己的组件库。有赞的前端团队选择了后者,制作并开源了Zent。Zent提供了一套完整的基础UI组件和常用的业务组件。目前我们有超过45个组件,这些组件已经应用到有赞的各个PC业务中。广泛应用于。在本文中,我们将讨论如何开发一个优秀的React组件库以及一个完整的组件库的组成。1、选择开源?还是自己造轮子?React环境中有很多优秀的UI组件库。国内知名的antDesign和国外的Material-UI都是比较稳定优秀的组件库。那么为什么一定要自己开发一套组件库呢?原因大致如下:有赞对各业务PC产品都有独立的设计规范,包括但不限于组件样式、交互方式等。有赞微博商城、零售、美业等PC产品业务场景相对复杂,一些通用组件,如Design、SKU组件等,需要进行深度定制。需要同时支持有赞多个业务部门的PC产品。团队成员以开源的方式参与组件库的开发。在这期间,彼此之间会有很多的讨论和碰撞,这也是对团队的磨练过程。2.组件库构成构建一个完整的组件库需要考虑:组件设计思路组件代码规范组件开发流程组件测试组件维护(包括PR/issue管理、签约、文档)1.组件设计思路同一个业务对于场景和交互方式代码的抽象,组件库首先要保证各个组件的视觉风格和交互规范是一致的。X组件是业务场景A中的交互,业务场景B中是另一种UI风格,所以X无法实现。抽象大大增加了组件的构建成本。因此,在设计组件之初,首先需要抽象约定统一的视觉风格和交互规范。其次,组件库的props定义需要有足够的可扩展性,内部完全控制组件,保持组件统一输入输出。让我们看一个Button的例子。//Button是Zent
