这是我参与「第五届青训营 」伴学笔记创作活动的第 3 天 写好js的原则,与html,css,js职能分离,好的ul组件具备正确性,扩展性,复用性,应用函数编程思想。
HTML/CSS/JS各司其责 应当避免不必要的由JS直接操作样式可以用class来表示状态 纯展示类交互寻求零JS方案
组件封装: 组件是指web页面上抽出来一个个包含模版(HTML)、功能和样式的单元。好的组件具备封装性、正确性、扩展性、复用性。 一个组件的设计应该具备:功能独立和唯一;可复⽤的模块,完成既定功能;有明确的接⼝规定;有上下⽂依赖、外部依赖资源的定义;可以独⽴发布。 实现组件的步骤:结构设计、展现效果、行为设计 三次重构:插件化;模板化;抽象化(组件框架)
JavaScript 编码原则之过程抽象: 通过高阶函数,以函数作为参数,就能得到写出一个只执行一次或者限制次数的函数。 Once 只执行一次 Throttle 节流 为函数添加一个间隔 time,每隔 time 事件调用一次函数,节省其需求 Debounce 防抖 在上面的节流中,timer 存在期间是不会去执行函数,而防抖是在每次事件一开始的时候清空 timer Consumer 这是将一个函数变成类似 setTimeout 这样的异步操作的函数 Iterative 将一个函数,变成可迭代使用的的,这通常用于一个函数要给一组对象执行批量操作的时候 Toggle切换状态,也可以封装成一个高级函数
代码质量优化之路 提炼函数 将一段代码提炼到一个独立的函数中,并以这段代码的作用命名 函数参数化 以参数的形式传入不同的值,消除重复函数 使用策略模式替换“胖”分支 使用策略模式替换“胖胖”的if-else或者switch-case 提炼变量 提炼局部变量替换表达式 内联变量 用变量右侧表达式消除变量,这是提炼变量的逆操作