前端工程化的一些理解

一、模块化

主要是js模块化,可以使用CommonJS、AMD、CMD等模块化规范,其中的区别是CommonJS对于模块是同步加载的,常用于服务器端;AMD、CMD是异步模块加载更适用于浏览器端;还有一个变态的UMD规范是兼容各种规范的产物。如今的ES6的import、export关键字也提供了简单的模块化系统,虽然ES6的浏览器兼容性是一个问题,但可以使用babel转化为ES5语法来解决。

解决方案:webpack + babel + ES6
二、组件化

模块化是从语言层面将代码拆分;组件化是基于模块化在设计层面上对UI的拆分。
模块是独立的算法、数据单元;组件是独立的可视、可交互单元
一个组件一般是包括了html、js、css的功能完备的结构单元。理论上一切皆是组件,这个思想在Vue中体现的很好,每个文件都是一个包括了完整html、js、css的.vue组件。

三、规范化

一个好的开发团队,代码的规范化是非常重要的,具体使用什么样的规范是次要的,最主要的是整个团队的共同遵守。
一般情况下,规范是由整个团队共同讨论决定的,包括目录结构编码规范等。

解决方案:ESLint or JSLint
四、自动化

很多可以由工具自动完成的东西,不应该浪费人力资源。
前端的自动化可以包括以下几个方面:图标合并文档生成自动化构建自动化测试等。

你可能感兴趣的:(前端工程化的一些理解)