界面是数据的反应,react组件是返回特定界面的函数

组件设计时的思考点

  1. 组件的整体结构设计
  2. 组件的属性改怎么设计?
    1. 数据如何更新
    2. 受控组件 & 非受控组件
  3. 如何保持组件的扩展性?
  4. 多个项目,如何重用组件?

3种粒度的组件化

  1. 基础组件
  2. 业务组件
  3. 插件,按需加载,不要放在基础组件库里面,不要污染业务代码
    1. 富文本编辑器
    2. 消息中心推送

插件是对业务最好的支持

  • 消息中心:实时推送技术,插件思维,websocket
  • 如果插件能满足功能,就开发插件,优先考虑插件

业务组件,有大量的业务可以抽象为业务组件

业务复杂度的考虑

  1. 交互的复杂性
  2. 数据结构和状态的复杂度
  3. 多项目之间的相互依赖
  4. 打包
  5. 工程化扩展的配置性
  6. 第三方组件库的二次开发
  7. 流程的规范性
    1. git flow
      1. commit信息
    2. eslint
    3. 单元测试
    4. CI/CD版本化