大鹿
Jiann
Do not go gentle into that good night. 🏕️

组件库设计

为什么要封装组件库?明确组件库场景!

组件库封装优点

  • 组件化是对实现的分层,代码抽象,是更有效地代码组合方式
  • 组件化是对资源的重组和优化,从而使项目资源管理更合理
  • 组件化有利于单元测试
  • 组件化对重构较友好

组件库定位

  • 基础组件:多项目、业务之间组件通用,原子性组件,实现单一的功能,保证相关之间的组合能力
  • 业务通用组件:带有某一业务,或者某一行业的组件,需要重点突出行业属性
  • UI组件库:为了统一视觉
  • 项目组件(块):某一项目内各个模块公共组件,对项目内功能、逻辑、风格、布局等的抽象,不追求跨项目通用

问题思考

  • 组件是否符合单一原则,是否功能明确
  • 组件的定位需要明确
  • 是否有足够的精力进行后续维护

设计原则

  1. 规范明确:组件命名,api等组件库内需统一,同时参考社区其他组件api定义
  2. 单一职责,组件定位明确,功能明确
  3. 最少开放原则,在api未明确使用场景时,api不对外开放。
  4. 最少外部依赖,且不暴露内部实现
  5. 完善的文档体系
  6. 持续迭代,向前兼容性
  7. 完整的测试case

代码开发

  1. 技术方案,未来规划
  2. 功能边界和与其他组件的组合关系
  3. eslint,代码规范,css命名规范(外部使用如何二次覆盖)
  4. commit规范,CR规范,发布流程
  5. 文档整理和发布
  6. 单元测试