997
社区成员
这是我参加朝闻道知识分享大赛的第130篇文章。
组件:在工业品上,指具有标准接口和某种功能且可复用的标准零部件。在软件开发上,指封装好的可复用的程序“零部件”。
前端UI组件:“按钮”、“输入框”、“下拉选择”都是组件,组件和组件组合就变成了一个更复杂的组件。
组件库:一系列UI组件的合集
组件库特点:一致性、效率、协同
快速上手
引入组件库:
按需加载:降低体积
通过CND使用:
主题定制
主题色:
通过C55进行样式覆盖或修改Less变量来修改颜色
组件定制:
Arco Pro:
DesignLab:
暗黑模式
国际化
语言国际化:
RTL视图:
ConfigProvider-全局配置组件默认属性
搭建业务组件库
考虑的问题:架构设计、技术方案、对外文档
架构设计:
单包架构:一个代码仓库里所有组件打包成一个整体,发布出去一个 npm 包
多包架构:—个代码仓库包含多个组件代码,会发布出去多个 npm 包。
技术方案:
对外文档:
组件开发
什么是好的组件:
项目组织:
语义化命名
组件的命名应当具有语义,并且避免与基础组件冲突。同一团队/仓库下的业务组件,也可采用相同的命名前缀。
包名和组件名最后一致
NPM包名应当尽量与组件名保持一致,包含明确的使用场景信息。
单独维护类型文件
推荐将需要对外导出的TS类型维护在单独的interface.ts中,并将其在index.ts中导出。
组件设计:
接口定义
在为组件定义接口类型时,应继承原生DOM(或基础组件)属性,避免属性遗漏或重复声明。
类名前缀统一
组件使用特殊且统一的类名前缀,尽量降低与用户类名冲突的可能性。
避免行内样式和 CSS Modules
确保外部可通过类名进行样式覆盖。
避免在JS中耦合CSS
应尽量保证逻辑与样式的分离,确保用户可以分别引入JS和CSS文件,避免由于构建环境的不同导致的用户编译失败的问题。
注意样式的按需加载
在基于基础组件库如Arco进行业务组件的逻辑封装时,应注意按需引入所依赖的Arco基础组件的样式文件
功能要点
API定义
核心逻辑
快速托管