这是我参与「第四届青训营 」笔记创作活动的第三天
1.写好Js的一些规则
1.1 各司其责(html负责内容,css负责表现,js负责行为)
就拿一个简单的实现网页日渐和雅间模式的一个功能,有三中实现方式
- 通过js来更改css样式
- 通过js控制类(比较好的一种形式)
- 通过css实现(最理想的形式)
1.2 组件封装(扩展,复用)
轮播图的一个组件
基本方法:
-
结构设计
-
展现设计
-
行为设计
- aip(功能)
- event(控制流)
总结:组件封装的思想就是
- 组建的设计原则:封装性、正确性、扩展性、复用性
- 实现组件的步骤:结构设计、展现效果、行为设计
- 三次重构:陈建华、模板化、抽象化(组件框架)
1.3 过程抽象(函数式编程)
什么是抽象
顾名思义嘛,抽象就是,概括,隐藏掉具体细节和本质
什么是过程抽象?
- 用来处理局部细节控制的一些方法
- 函数式编程思想的基础应用
比如说有一个需求,就是让一个函数只执行一次,但是有许多的事件处理都会用到这个需求,我们就会考虑将这个需求抽象出来
高阶函数:
常用的高阶函数
Once():使方法内部的函数只执行一次
Throttle():节流阀,在固定的周期内,只执行一次动作,如果有新的时间触发,不执行
Debounce():防抖,通过不断地刷新计时器,防止频繁地触发事件,最终只展示最后一次的结构
Consumer(): 延迟调用,就是异步,不论事件触发的多块,都只会按照固定周期来实行,并且每一次事件都会执行
Iterative():迭代器,可以实现批量操作多个元素等
命令式:怎么做
声明式:做什么
JavaScript是一个现代化的编程语言,同时具有命令式和声明式,但在实际的开发应用中,可以更多地 去尝试使用声明式,因为其具有过程抽象化的思想(将一些过程细节进行抽象化)
2. 写好JavaScript的一些进阶规则
一个小知识,在Vue的学习中监听一个数据一般是用watch,在js中还可以通过addEventListener()方法
addEventListener() 方法
addEventListener() 方法用于向指定元素添加监听事件。且同一元素目标可重复添加,不会覆盖之前相同事件,配合 removeEventListener() 方法来移除事件。
相关文档:(10条消息) addEventListener() 方法帅气与大侠的博客-CSDN博客addeventlistener
关于前端与算法
其实前端也需要一定的算法知识,在不同的场景都会需要用到算法知识。
- 交通灯状态切换
- 判断是否是4的幂(推荐转换成二进制的形式再进行判断)
- 洗牌(怎样才能做的更加的“随机”)
- 分红包(切西瓜法和抽牌法)
代码文档:码上掘金 (juejin.cn)