JS(上) | 青训营笔记

57 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 3 天

课堂笔记

课程重点内容:

  • 各司其职
  • 组件封装

各司其职:

在前端三大件js、css、Html中,它们都有各自的分工,为了提高代码的可扩展性、可维护性等,应该让它们明确自己的任务能更好地提升代码的质量。

Html:主要负责页面元素的结构

Css:负责页面元素的样式

Js:负责处理用户的行为,应当避免不必要的由js操作样式,可以利用class来表示状态

具体案例:

image.png

版本一:利用js修改css样式

image.png

版本二:利用js修改html元素的类名

image.png

版本三:纯css展示

image.png

以上三个版本中,版本一的缺陷为功能的可读性和可扩展性比较差;版本二中利用了class来表示状态基本实现各司其职的原则,但由于需求仅为修改样式,纯展示类交互寻求零js方案,故最好的方法是版本三。

组件封装:

组件是指在Web页面上抽出一个个包含模板(HTML)、功能(JS)和样式(CSS)的单元,好的组件具备封装性、正确性、扩展性、复用性。

具体案例:

image.png

一般封装方法:

代码参考

code.h5jun.com/reba/3/edit…

重构插件化:解耦

重构模板化:解耦

  • 将HTML模板化,更易于扩展

代码参考

code.h5jun.com/zuve/3/edit…

重构组件框架:抽象

  • 将通用的组件模型抽象出来,变为一个通用的模板组件,包含构造器,插件注册,HTML模板

image.png

代码参考

code.h5jun.com/vata/4/edit…

总结:

  • 组件设计的原则:封装性、正确性、扩展性、复用性
  • 实现组件的步骤:结构设计、展现效果、行为设计
  • 三次重构
    • 插件化
    • 模板化
    • 抽象化(组件框架)