如何写好JavaScript
一.各司其责(将css html JavaScript职能分离)例子:夜间模式
1.在通常情况下应当避免不必要由于js直接操作样式
2.可以用class来表示状态
3.纯展示类交互寻求零js方案(尽量零JS,不强求,但是在应用之中的应用场景较多)
二.组件封装(好的UI组件具备准确性,扩展性,复用性)
轮播图结构:html
轮播图是一个典型的列表结构,可以用无序列表实现
表现:css
-使用CSS绝对定位将图片重叠在同一个位置
-轮播图切换的状态用修饰符(modifier) -轮播图的切换动画使用CSS transition行为设计:API 行为:JS
API设计应保证原子操作,职责单一,满足灵活性
行为:控制流
使用自定义时间来解耦总结:基本方法
-结构设计 -展现效果 -行为设计 -API (功能) -Event(功能流)重构:插件化
解耦 -将可控制元素抽取成插件 -插件与组件之间通过**依赖注入**方式建立联系重构:模板化
-将html模块化,更容易扩展重构:组件框架
抽象 -将通用的组件模型抽象出来组件封装
总结 组件设计的原则:封装性,正确性,扩展性,复用性, 实现组件的步骤:结构设计,展现效果,行为设计 三次重构:-插件化 -模板化 -抽象化(组件框架)三.过程抽象(ui交互细节)
-用来处理局部细节控制的一些方法 -函数式编程的基础应用Once
为了能够让“只执行一次”的需求覆盖不同的事件处理,我们可以将这个需求剥离出来。这个过程称为过程抽象Hof 等价函数
高阶函数
-以函数作为参数 -以函数作为返回值 -常用于作为函数装饰器 【常用高阶函数:-Once -Throttle -Debounce -Consumer/2 -Lterative】高阶函数
命令式与声明式命令式(分为面向过程,面向对象)
-一般声明式的代码会更加简洁 -命令式偏向于怎么做 声明式偏向于做什么总结
-过程抽象/HOF/装饰器 -命令式/声明式