发表于: 2019-07-13 22:29:24
1 928
今天完成的事情和收获:弄明白了css模块化到底是什么,开始把css的组件库当做模块,把模块当成样式表,总觉得哪里都不对。后来讨论后才知道样式表只是把属性写成一条条常用的,直接来调用,而组件库是指网页中经常使用的盒子,比如一个图标很多地方都用,或者一个表格,或者是一个动画,或者是一组按键,此时就可以把这些做成组件库。使用的时候直接调用组装成相应模块。
由此可知模块是由组件和特定的代码组合而成的,模块化的目的是和其他模块或者布局不相互影响,即内部定义不影响外部,也不让外部的影响内部。模块化有三个特点:
1.样式私有化
2.避免被其他样式文件污染
3.可复用
最开始的模块化是为各个模块的根节点设置一个唯一的类名,然后采用样式的后代选择器的方式来实现,但是这个只是在小项目尤其单人的时候适用,如果是大项目,需要协同开发的时候,别人不知道你类名如何写的,就很容易重复,因此出现了目前前端流行框架Vue和React在CSS模块化的应用。
但是Vue的Scoped只是解决了私有化的问题,无法避免被其他没有私有化的样式文件污染,因此出现了专门模块化的方案,开启css-loader的modules,使用CSS Modules方案,它不仅能实现样式的私有化,还能有效的避免被其他样式文件干扰,只是他需要借助webpack进行进行编译,写法上也有点不一样。
看到最后发现CSS Modules是通过js来维护CSS中的类名的唯一映射值来实现模块化,这个还没学,所以就先停一下,把任务做完开始啃js。
然后今天把css的手动动画和自动动画都做出来了,当然是分开的,没有应用到同一个模块上。做自动的动画时需要把下方的点和图片对应上,调整费了一些时间,其他没有遇到什么问题。
明日计划:准备明天把任务都做出来,将任务总结一下。然后选择一个小课堂进行准备讲解,每天抽一两个小时来准备。
评论