这是我参与「第五届青训营 」伴学笔记创作活动的第 2 天
js的一些原则
- 各司其职 HTML、CSS、JS职能分离
- 组件封装 好的UI具备正确性、扩展性、复用性
- 过程抽象 应用函数式编程思想
各司其职
应当避免不必要的由js直接操作样式
组件封装
- 结构设计
- 展现效果
- 行为设计
- API功能
- Event控制流
组件封装(进阶)
- 解耦:将HTML模板化,更易于扩展
- 抽象:将组件的通用模型抽象出来
- 总结:组间设计的他原则:封装性、正确性、扩展性、复用性
- 实现组件的步骤:结构设计、展现效果、行为设计
组件封装(疯狂进阶)
三次重构:插件化、模板化、抽象化(组件框架)
插件化严格意义来讲,其实也算是模块化的观念。将一个完整的工程,按业务划分为不同的插件,都是分治法的一种体现。化整为零,相互配合。,越小的模块越容易维护。 插件化按理也算是模块化的一种体现,和组件化就不一个概念了。
过程抽象-只关注输入和输出
- 高阶函数
function Once(fn){
return function(...args){
if(fn){
const ret = fn.apply(this,args)
fn = null
return ret
}
}
}
纯函数,常用作函数装饰器
编程范式
- 命令式与声明式
- 声明式扩展性更好
通过比较可以看出,声明式语言在某些场景下可以极大地简化代码。通过归纳抽离部分,实现对通用代码的简化操作。而且,声明式编程通常是以数据(或者数据流)为导向的,声明式编程通常可以更好的用于处理数据。但是,当我们写业务逻辑,我们通常必须要写命令式代码,并不能方便地在我们的专项业务里也存在一个可以归纳抽离的实现。
我觉得命令式就相当于面向过程的思想,声明式更像面向对象的思想