传统js加载、commonJs加载、AMD加载的区别
1.CommonJS
是一种前端模块规范,用在服务器端,由Nodejs推广使用;
特点:
一个单独的文件就是一个模块。
每一个模块都是一个单独的作用域。
用module.exports来输出。
使用require方法来加载模块,返回文件内部的module.exports对象。
用法:
exports.方法名= function(){};
var math = require(方法名);
AMD
AMD是为了弥补commonjs规范不能完美支持浏览器的另一种模板规范
AMD缩写:Asynchronous Module Definition,意思就是“异步模块定义”。
AMD也采用require()语句加载模块,但是却与commonjs不同:
用法:require([module], callback);
requireJS就是实现了AMD的规范;requireJS的诞生主要解决了这些问题:
1.实现js文件的异步加载,避免网页失去响应;
2.管理模块间的依赖性,便于管理维护;
requireJS的用法:
1.下载requireJS文件,引入js
(下载链接:http://www.requirejs.cn/docs/download.html#requirejs)2.写法:
//index.html
require(['js/AMD-c','js/AMD-d'], function(c,d) { console.log(c); console.log(d); });
//定义js文件
定义js文件
参考链接
前端模块化:https://www.jianshu.com/p/d67bc79976e6
js模块化:https://www.imooc.com/article/20057
requirejs的用法:http://www.runoob.com/w3cnote/requirejs-tutorial-1.html
js模块化编程:http://www.cnblogs.com/chenguangliang/p/5856701.html
CommonJs的规范与使用:https://www.jianshu.com/p/fc858878d891
CommonJS模块规范:http://javascript.ruanyifeng.com/nodejs/module.html#toc0
JavaScript之模块化——commonJS、AMD、CMD、ES6:https://blog.csdn.net/yangxiaoyanger/article/details/79566776