模块化概念——在进行项目分析或者编码时,先把项目进行拆分,拆分成很多的类,对象,很多的函数等等。能够提高代码的复用性。这些被拆分出来的类型,对象,函数就是模块。
1) 前端模块化
ES6之前,因为JavaScript不支持模块化,所以在前端里出现了第三方的解决方案 AMD和CMD。
-
AMD:Asynchronous Module Definition,中文名是异步模块定义的意思,需要加载require.js库;
- 对外导出使用return
- 主模块再使用其他模块:
require([引入的其它模块列表],function(其它模块对应的变量名列表){ });
- 引用路径相对HTML:
define(["js/dog.js"],function(d){})
- AMD 是提前执行,AMD 推崇依赖前置。AMD在加载模块完成后就会执行改模块,所有模块都加载执行完后会进入require的回调函数,执行主逻辑,这样的效果就是依赖模块的执行顺序和书写顺序不一定一致,看网络速度,哪个先下载下来,哪个先执行,但是主逻辑一定在所有依赖加载完成后才执行。用户体验好。