这是我参与「第四届青训营 」笔记创作活动的第1天
(这也是我第二次参加青训营啦~
本期青训营依旧是干货满满的技术分享👍
基础知识
Node.js 是 JavaScript 的服务器运行环境(runtime
功能
实现动态行为
- 在变量中储存有用的值
- 操作一段文本(字符串)
- 响应事件(点击)
浏览器api
- 创建、移除、修改html,如弹窗
- 地理位置
- 多媒体 播放音频、利用自己的摄像头录像
位置
将 <script> 放在HTML文件的底部附近
语法
声明变量 let var
关键字 new 跟着一个含参函数,告知浏览器创建一个对象
类似函数调用,并把结果保存到变量中。
原则
各司其职
三元素职能分离
结构、表现、行为:三者分离
以切换夜间模式的小组件为例:
版本1
简单版本的夜间模式切换
直接操作body
版本2
直接操作css
对应的css有改变,加入body.night部分的修改
版本3
利用checkbox,改变css,则不用加入一行js代码。
总结:
避免不必要的由JS直接操作样式。本例为纯展示类交互,可以采用零JS的方案。
组件封装
以轮播图为例
- 将控制元素拆分(左右滑动的箭头、下方小圆点);彼此之间通过依赖注入的方式建立联系。
- 将html模板化,使得一个
<div class='slider‘></div>就能实现图片轮播、修改控制器的构造,传入图片列表。 - 将通用的组件模型,抽象出组件类(Component),其他组件类通过继承该类,并实现render方法。
总结:
好的ui组件具备正确性、拓展性、复用性。
需要做好结构设计、展现效果、行为设计等。
过程抽象
应用函数式编程思想,是处理局部细节控制的方法。
举例:节流、防抖等方面的应用。
纯函数:返回结果只依赖于它的参数,并且在执行过程里面没有副作用
优点:
- 方便进行单元测试!
- 减少系统中非纯函数的数量,从而使得系统可靠性增加