基础//开发环境之模块化
1 知识点
1.1 不使用模块快的情况
1.2 使用模块化
1.3 ADM
Asynchronous Module Definition —— 异步模块定义
AMD是一种异步加载模块的方式,主要用在浏览器环境中。主要依赖于require.js库
AMD模块化规范:
1.通过define()方法定义模块
2.通过require方法加载模块
require.js
全局 define 函数
全局 require 函数
依赖 JS 会自动、异步加载
<script data-main="./main.js" src="https://cdn.bootcss.com/require.js/2.3.3/require.min.js"></script>
1.4 CommonJS
CommmonJS用于node端,是同步加载的。
CommonJS模块化规范:
1.通过module.exports或exports来暴露模块
2.通过require来加载模块
CommonJS的特点
1.同步加载,一般用于node端
2.一次加载,多次使用。对同一个模块而言,只会运行一次,多次使用时会从缓存中获取
3.模块加载的顺序,按照它出现的顺序
4.代码都运行在模块作用域,不会造成全局污染
node.js 模块化规范,现被大量用前端,原因:
①前端开发依赖的插件和库,都可以从 npm 中获取
②构建工具的高度自动化,使得使用 npm 的成本非常低
③CommonJS 不会异步加载 JS,而是同步一次性加载出来
2 重点总结
AMD CommonJS 两者的区别
AMD CommonJS 的使用场景:
- 需要异步加载 JS,使用 AMD;
- 使用了 npm 之后建议使用 CommonJS