今天看了前端模块化的相关概念和演变历史,总结一下。
为什么要模块化?
前端代码复杂度变高,都写在一个文件里不太好,耦合性太高,难维护,全局变量被污染的可能性大。
为了实现模块化,前端开发人员都做了哪些努力?
- 函数 方法写在全局 容易造成全局变量污染
- 对象 全局变量少了 通过对象操作属性 对象内的属性和方法都向外暴露,都是可以被修改的,不安全
- 立即执行函数 看不到函数内的数据和属性 安全的问题解决了 good
- 立即执行函数传入参数 有的函数需要依赖其他的模块 通过参数引入,然后通过window去暴露自己需要的方法
模块化带来的好处
降低复杂度,
降低耦合性
部署方便
模块化带来的问题
- 请求多: script标签变多了,本来1个 现在拆分为了好多个
- 依赖复杂 : 每个script标签可能依赖别的script标签,因此这写被依赖的必须在前面,顺序不能变,变了就会出错。
- 难以维护: 因为有顺序问题,因此很难维护,不知道那个可以删除,按个不能删除 部署的时候,即使不用的js,害怕别人的包会依赖,也不敢删除