postcss和cssmodule是什么?有什么作用?
postcss是什么?
根据官网的解释,它是一种javascript编写的工具,用来转化css的。可以认为它是处理css的插件集合,需要配合诸如webpack、gulp等编译工具才能展现它强大的能力。
目前社区提供了非常多的插件,比较有名的如下:
- autoprefixer 可以为css的属性配置兼容性的前缀,不需要手动添加
- postcss-preset-env 允许你使用更加现代的css特性
- stylelint 检查css语法错误
- cssnano css的压缩器
- 等等
postcss的原理
如果大家了解babel的原理,那就应该听说过AST即抽象语法树。编译器将字符串进行词法分析、语法分析,再做转换,最终达到预期的结果。postcss也是同样的原理,这个包已经为使用者提供了解析的方法parse,并且也提供了很多转化的API,利用这些就可以自己开发一款postcss插件了。
css Module是什么?
先前呢,我们使用css选择器,它是对整个页面是有效的,也就是全局的,当你每次迭代需求的时候,需要考虑每次添加新的css是否会影响到其他地方,所以我们有时选择为样式表添加命名空间。css Module为我们提供了另外一种开发方式,它可以使css具有局部作用域。
用法如下:
用法是如此的简单,基本一看就会,css-loader为我们提供了css Module的开关,只要为css-loader添加参数选项modules就可以开启。注意:它必须放在less或者sass的loader之前。
那它如何做到局部作用域的呢?
打开element面板可以发现,它把class变成了md5戳,对应每个组件,保持唯一。
vue的scoped
由此我们联想到vue的scoped,它也解决了css局部作用域的问题!
它在dom上生成了一个data属性,并且给class选择器添加了属性选择器,类似于之前的md5戳。不过由于添加了属性选择器,使得选择器的优先级变高了,想在组件外面覆盖css属性就变得不那么容易了!
喜欢我的回答就关注我吧,有问题可以发表评论,我们一起学习,共同成长!
HTML静态页面与CSS该如何审查代码?
stylelint这个css代码静态分析工具,它承担了部分代码评审工作,并且更加快速高效,几秒内就能反馈出结果。开发人员只需要评审stylelint检查通过的代码即可,大大减轻了工作量。
Java和web哪个专业更好就业,更好学点?
很高兴看到并回答,如果认同回答,记得点赞和转发哦~
楼主的问题不是很具体,下面我来分析一下。
首先,Java目前在应用(就业)场景上分为两块:安卓开发和企业级开发。
安卓开发
又分为安卓应用开发和安卓游戏开发。游戏开发在思路上和设计上稍难一些。下面是学习路线图。
图中为一些技能点,即使是游戏开发也会用的到。
Android开发也包括一些框架,这些框架可以提高开发效率,提高代码质量。
企业级开发
Java企业级开发包括的技术点比较多,通常为以下内容 :
- JSP/Servlet
- JSTL
- Struts
- MyBatis
- Hibernate
- Spring / Spring MVC / Spring AOP
- Spring Data / Spring Security
- Spring Boot
- 数据库:MySQL
- 缓存:Ehcache, Memcache, Redis
Java企业级开发的项目,主要为B/S架构,即基于浏览器使用的企业级管理系统。
例如:在线办公平台、在线政务平台等。
目前在人才需求量上来看,Java后端开发一直居高不下,这块就属于企业级开发范围。
就业岗位包括:Java开发工程师,Java高级开发工程师、网站开发工程师、系统架构师等。
就业前景广泛。
其次,Web应该是指Web前端开发吧。
Web前端开发
前端技术这几年发展非常迅速,难度也在加大,虽然在广度上没有后端范围大,但从深度上已经有了较大提升,所有近几年前端开发在人才需求上、薪酬上都较往年提升很多。
前端技术栈包括:
Web前端开发技术栈
- 常见浏览器:chrome,firefox
- 协议:HTTP1.1 HTTP2: websocket
- HTML,CSS,JAVASCRIPT
- 脚本引擎
- 编译工具: Gulp ,Grunt 。。。
- 质量控制:JSLint等
- 包管理:npm、Bower
- 测试工具:QUnit 、Selenium 等
- 框架:AngularJS, React , Vue
- UI框架: BootStrap , Ant Design
下图展示了技术栈内容(原图:)
总的来说,每一块都可以做为一个学习、就业方向。上面的思维导图能够帮助楼主大体上了解一下要学的内容。
你应该这样理解:如果一门技术没有难度 ,那就没有壁垒,学习就没有价值。
如果一门技术没有深度,那么就没有良好的发展前景。
所以不要怕难,不要怕广,选择好一个方向坚持学下去,将来都会有很好的发展。
希望以上内容能帮到你及更多人,欢迎留言:)
祝顺利。
我是一名Java全栈开发工程师、系统架构师,从业15年。曾带领小团队完成多个数百万级项目。我正在写一些关于互联网行业及开发技术方面的文章,关注我,你一定会有所收获。
如果有项目开发、行业及求职方面的问题,都可以在评论区留言或私信我。(关注后私信我,向你免费分享行业级学习资料)

