postcss和cssmodule是什么

更新时间:02-08 教程 由 别弃我 分享

postcss是什么?

根据官网的解释,它是一种javascript编写的工具,用来转化css的。可以认为它是处理css的插件集合,需要配合诸如webpack、gulp等编译工具才能展现它强大的能力。

目前社区提供了非常多的插件,比较有名的如下:

autoprefixer可以为css的属性配置兼容性的前缀,不需要手动添加

postcss-preset-env允许你使用更加现代的css特性stylelint检查css语法错误cssnanocss的压缩器等等

postcss的原理

如果大家了解babel的原理,那就应该听说过AST即抽象语法树。编译器将字符串进行词法分析、语法分析,再做转换,最终达到预期的结果。postcss也是同样的原理,这个包已经为使用者提供了解析的方法parse,并且也提供了很多转化的API,利用这些就可以自己开发一款postcss插件了。

cssModule是什么?

先前呢,我们使用css选择器,它是对整个页面是有效的,也就是全局的,当你每次迭代需求的时候,需要考虑每次添加新的css是否会影响到其他地方,所以我们有时选择为样式表添加命名空间。cssModule为我们提供了另外一种开发方式,它可以使css具有局部作用域。

用法如下:

用法是如此的简单,基本一看就会,css-loader为我们提供了cssModule的开关,只要为css-loader添加参数选项modules就可以开启。注意:它必须放在less或者sass的loader之前。

那它如何做到局部作用域的呢?

打开element面板可以发现,它把class变成了md5戳,对应每个组件,保持唯一。

vue的scoped

由此我们联想到vue的scoped,它也解决了css局部作用域的问题!

它在dom上生成了一个data属性,并且给class选择器添加了属性选择器,类似于之前的md5戳。不过由于添加了属性选择器,使得选择器的优先级变高了,想在组件外面覆盖css属性就变得不那么容易了!

喜欢我的回答就关注我吧,有问题可以发表评论,我们一起学习,共同成长!

声明:关于《postcss和cssmodule是什么》以上内容仅供参考,若您的权利被侵害,请联系13825271@qq.com
本文网址:http://www.25820.com/tutorial/14_2274511.html