学习javascript | 青训营笔记

46 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 2 天

js的一些原则

  1. 各司其职 HTML、CSS、JS职能分离
  2. 组件封装 好的UI具备正确性、扩展性、复用性
  3. 过程抽象 应用函数式编程思想

各司其职

应当避免不必要的由js直接操作样式

组件封装

  1. 结构设计
  2. 展现效果
  3. 行为设计
  4. API功能
  5. Event控制流

组件封装(进阶)

  1. 解耦:将HTML模板化,更易于扩展
  2. 抽象:将组件的通用模型抽象出来
  3. 总结:组间设计的他原则:封装性、正确性、扩展性、复用性
  4. 实现组件的步骤:结构设计、展现效果、行为设计

组件封装(疯狂进阶)

三次重构:插件化、模板化、抽象化(组件框架)

插件化严格意义来讲,其实也算是模块化的观念。将一个完整的工程,按业务划分为不同的插件,都是分治法的一种体现。化整为零,相互配合。,越小的模块越容易维护。 插件化按理也算是模块化的一种体现,和组件化就不一个概念了。

过程抽象-只关注输入和输出

  1. 高阶函数
function Once(fn){
    return function(...args){
        if(fn){
            const ret = fn.apply(this,args)
            fn = null
            return ret
        }
    }
}

纯函数,常用作函数装饰器

编程范式

  1. 命令式与声明式
  2. 声明式扩展性更好

通过比较可以看出,声明式语言在某些场景下可以极大地简化代码。通过归纳抽离部分,实现对通用代码的简化操作。而且,声明式编程通常是以数据(或者数据流)为导向的,声明式编程通常可以更好的用于处理数据。但是,当我们写业务逻辑,我们通常必须要写命令式代码,并不能方便地在我们的专项业务里也存在一个可以归纳抽离的实现。

我觉得命令式就相当于面向过程的思想,声明式更像面向对象的思想