写好JS的一些原则:
- 各司其职(让HTML、CSS、JS职责分离)
- 组件封装(好的UI组件具备正确性、扩展性、复用性)
- 过程抽象(应用函数式编程思想)
举例:深夜食堂,切换界面的暗色模式和白天模式,调整页边距行边距
结构:HTML
- 轮播图是一个典型的列表结构,我们可以使用无序列表< ul >元素来实现。
表现:CSS
- 使用CSS绝对定位将图片重叠在同一个位置
- 轮播图切换的状态使用修饰符(modifier)
- 轮播图的切换动画用CSS transition
行为:JS
- API设计应保证原子操作,职责单一,满足灵活性
总结:基本方法:
- 结构设计
- 展现效果
- 行为设计
- API(功能)
- Event(控制流)
解耦:
- 将控制元素抽取成插件
- 插件与组件之间通过依赖注入方式建立联系
- 用数学方法将两种运动分离开来处理问题,常用解耦方法就是忽略或简化对所研究问题影响较小的一种运动,只分析主要的运动
- 将HTML模块化,更易于扩展
抽象:
- 将通过的组件模型抽象出来
高阶函数:
- 以函数作为参数
- 以函数作为返回值
- 常用于作为函数装饰器
常用高阶函数:
- Once
- 为了能够让“只执行一次”的需求覆盖不同的事件处理,我们可以将这个需求剥离出来,这个过程我们称为过程抽象
- Throttle
- Debounce
- Consumer/2
- Iterative
举例:一个交通灯与多个交通灯的转换
写代码最应该关注什么?
- 风格
- 效率
- 约定
- 使用场景
- 设计
举例:洗牌。分红包-切西瓜法(不能够完全随机)。