JS模块化

(一)ES6Module
在ES6之前社区指定了一些模块加载方案

最主要的有
CommonJSAMD两种
前者是用于服务器
后者用于浏览器
ES6在语言标准上实现了模块功能Module
而且实现的相当简单,完全可以取代
CommonJS和AMD规范,成为浏览器和服务器通用的模块解决方案
创建A.JS
var sex="boy";
var echo = function(value){
    console.log(value)
}
console.log("呵呵")
//导出sex echo
export {sex,echo}
创建B.JS
//引入
import {sex,echo} from "./A.js"
console.log(sex)   // boy
echo(sex) // boy
创建index.html页面
<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
<script type="module" src="B.js">
</script>
</body>
</html>

会输出 A.JS里的内容

(二)CommonJS规范
创建A.js
let s = 'hello';
function greet(name){
    console.log(s+','+name+'!');
}
//导出 greet
module.exports = greet;
创建B.js
// 引入    A.js内容
let greet = require('./A');
let s ='老干爹!';
greet(s);

node B.js 执行

(三)ADM规范

AMD规范是"Asynchronous Module Definition"的缩写

意思就是异步模块定义

AMD更适合浏览器加载

AMD也是用require()语句加载模块,但是不同于CommonJS,它要求两个参数

require([moudule,callback]);

第一个参数[moudule],是一个数组,里面的成员就是要加载的模块;

第二个参数callback,则是加载成功之后的回调函数

 



原文地址:https://www.cnblogs.com/zzzzzzzsy/p/7790071.html