前端模块化整理汇总

AMD

异步加载,依赖前置,前置依赖建议写在前引用,在所有模块加载完成后立即执行回调函数,用户体验好,不容易造成卡顿
需要引用require.js

//math.js
define([], function () {
  function add(a, b) {
    return a + b;
  }
  return { add };
});
//main.js
require(["./math.js"], function(mathObj) {
  res = mathObj.add(5, 6);
  console.log(res);
})
//index.html
<html>
  <body></body>
</html>

<script src="./require.js"></script>
<script src="./main.js"></script>

//控制台打印11

CMD

异步加载,依赖就近,按需加载,在require引用的地方执行代码,性能好
需要引用sea.js

//math.js
define(function (require, exports, module) {
  function add(a, b) {
    return a + b;
  }
  exports.add = add;
});
//main.js
define(function (require, exports, module) {
  const add = require('./math');
  const res = add(5, 6);
  console.log(res);
});
//index.html
<html>
  <body></body>
</html>

<script src="./sea.js"></script>
<script src="./main.js"></script>

//控制台打印11

CommonJs

同步加载,运行时加载执行,容易阻塞进程,造成卡顿,一般用在服务端Node开发中,输出拷贝值,原始值改变不影响引用值
需要引用node.js

//math.js
module.exports = {
  add: function(a, b) {
    return a + b;
  }
}
//main.js
const math = require('./math.js');
const res = math.add(1, 2);

ES6

同步加载,编译时加载执行,因此必须放在代码块最顶层,输出原始值的引用,因此原始值改变会影响引用值
需要使用ES6标准

//math.js
const add = function(a, b) {
  return a + b;
}
export { add };
//main.js
import { add } from './math';

const res = add(1, 2);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值