目前来说,web业务日益复杂化和多元化,前端开发已经由以webpage模式为主转变为以webapp模式为主了。现在随便找个前端项目,都已经不是过去的拼个页面+国足VS叙利亚比分搞几个jquery插件就能完成的了。工程复杂了就会产生许多问题,比如:如何进行高效的多人协作?如何保证项目的可维护性?如何提高项目的开发质量? 前端工程化就是解决以上问题而生的。
前端工程化有四个特点:模块化、组件化、自动化、规范化。
模块化: 就是将
一个大文件拆分成相互依赖的小文春哥来敲我家门件,再进行统一的拼装和加载。只有这样,才有多人协助的可能。在工程化之前,一直是使用js、jquery、ajax,这没有模块概念,对于开发大型且复杂的系统会有一定的限制。
js的模块化
css的模块化
虽然sass、less、stylus等预处理器实现了css的文件拆分,但没有解决css模块化的一个重要问题:选择器的全局污染问题。按道理,一个模块化的文件应该要隐藏内部作用域,只暴露少量接口给使用者。而按照目前预处理器的方式,导入一个css模块后,已存在的样式有被覆盖的风险。虽然重写样式是css的一个优势,但这并不利于多人协作。为了避免全局选择器的冲突,各厂都制定了自己的css命名风格:bem风格,bootstrap风格等但这毕竟是弱约束。选择器随着项目的增长变得越多越复杂,然后项目组里再来个新人带入自己的风格,就更加混乱了。从工具层面,社区又创造出shadow dom、css in js和css modules三种解决方案。shadow dom是webcomponents的标准。它能解决全局污染问题,但目前很多浏览器不兼容,对我们来说还很久远;css in js是彻底抛弃css,使用js或json来写样式。这种方法很激进,不能利用现有的css技术,而且处理伪类等问题比较困难;css modules仍然使用css,只是让js来管理依赖。它能够最大化地结合css生态和js模块化能力,目前来看是最好的解决方案。vue的scoped style也算是一种。
资源模块化
资源模块化后,有三个夏枯草功效作用好处:
依赖关系单一化。所有css和图片等资源的依赖关系统一走js路线,无需额外处理css预处理器的依赖关系,也不需处理代码迁移时的图片合并、字体图片等路径问题;资源处理集成冲浪板化。现在可以用loader对各种资源做各种事情,比如复杂的vue-loader等等。项目结构清晰化。使用webpack后,你的项目结构总可以表示成这样的函数: dest = webpack(src, config)
组件化:
自动化: “简单重复的工作交给机器来做”,自动化也就是有很多自动化工具代替我们来完成,例如持续集成、自动化构建、自动化部署、自动化测试等等。
规范化:(至关重要的一环) 在项目规划初期制定的好坏对于后期的开发有一定影响。包括的规范有:
本文发布于:2023-04-03 10:47:33,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/9d03ffa07786481117254b051ae5097d.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:谈谈前端工程化是个啥?.doc
本文 PDF 下载地址:谈谈前端工程化是个啥?.pdf
留言与评论(共有 0 条评论) |