[读书笔记]阅读小记

  1. 如何无痛降低 if else 面条代码复杂度
  • if...if型
    • 痛点:复杂度指数型增长(详见原文)
    • 解决方法:将每个if(){}都可以拆分为函数,逐个调用,将复杂度从指数级下降到线性级
  • else if...else if型
    • 痛点:
      - 深层嵌套时,指数型增长
      - 数量过多时,违背职责单一原则
    • 解决方法:
      1. 查找表:拆分每个else if为函数,封装为键值对形式的若干个action,增加一个判断采取哪个action的方法
      2. 当判断条件复杂、action的执行顺序有要求时:
      1. 定义一个数组,数组元素具有match和action属性
      2. 对数据进行遍历,当某个元素的match属性被满足时,执行action并返回
      3. 这样的一个数组被称为职责链数组
  1. Regular 组件开发的一些建议 (https://github.com/kaola-fed/blog/issues/102)
  • 单一职责,避免过于庞大的组件,组件拆分时可以通过容器组件、UI组件来划分
  • 纯函数,将不直接获取、改变data的方法,拆分在组件之外,不放在this上
  • 少用双向绑定,用事件来传递数据,当嵌套过深时,使用esb或状态管理方案
  • this.data只存放UI相关的数据,必要时,将逻辑相关字段放在容器组件上
  • 组件传入参数的结构清晰,并遵循最少知道原则
  • 模版中不使用复杂的表达式,而是使用filter
  • dependencies:业务环境需要
  • devDependencies:开发环境需要
  • peerDependencies:指定当前包兼容的宿主包
  • optionalDependencies: 可选的包
  • bundledDependencies / bundleDependencies:打包依赖
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容