1. 为什么要使用模块化?
前端项目越来越复杂,代码日益庞大,迫切需要模块化来组织代码。模块化可以解决命名冲突,提供依赖管理,提高代码可读性,使代码解耦,提高复用性。
2. CMD、AMD、CommonJS 规范分别指什么?有哪些应用
- CMD
CMD 即Common Module Definition通用模块定义,CMD规范是国内发展出来的,就像AMD有个requireJS,CMD有个浏览器的实现SeaJS,SeaJS要解决的问题和requireJS一样,只不过在模块定义方式和模块加载(可以说运行、解析)时机上有所不同
- AMD
AMD即
Asynchronous Module Definition
,中文名是“异步模块定义”的意思。它是一个在浏览器端模块化开发的规范。
由于不是JavaScript原生支持,使用AMD规范进行页面开发需要用到对应的库函数RequireJS,实际上AMD 是 RequireJS 在推广过程中对模块定义的规范化的产出。
- CommonJS
CommonJS是服务器端模块的规范,Node.js采用了这个规范。Node.JS首先采用了js模块化的概念。
根据CommonJS规范:
1.定义模块:一个单独的文件就是一个模块。每一个模块都是一个单独的作用域,也就是说,在该模块内部定义的变量,无法被其他模块读取,除非定义为global对象的属性。
2.模块输出:module变量代表当前模块,我们将需要输出的内容放入module.exports属性中
3.加载模块:加载模块使用require方法
3. requirejs 完善任务
- 预览
- 仓库
瀑布流如图示:
1. 首屏大图为全屏轮播
2. 有回到顶部功能
3. 图片区使用瀑布流布局(图片高度不一),下部有加载更多按钮,点击加载更多会加载更多数据(数据在后端 mock)
4. 使用 r.js 打包应用