js 模块化

js 模块化

模块化主要是用来抽离公共代码,隔离作用域,避免变量冲突等。

模块化的整个发展历史如下:

IIFE:使用自执行函数来编写模块化,特点:在一个单独的函数作用域中执行代码,避免代码冲突。

js 复制代码
(function () {
  return {
    data: [],
  };
})();

AMD:使用 require 来编写模块化,特点:依赖必须提前声明好。

js 复制代码
define("./index.js", function (code) {
  //code 就是index.js返回的内容
});

CMD:使用 seaJS 来编写模块化,特点:支持动态引入依赖文件。

js 复制代码
define(function (require, exports, module) {
  var indexCode = require("./index.js");
});

CommonJS:nodeJS 中自带的模块化。

js 复制代码
var fs = require("fs");

UMD:兼容 AMD,CommonJS 模块化语法。

webpack(require.ensure):webpack2.x 版本中的代码分割。

ES Modules:ES6 引入的模块化,支持 import 来引入另一个 js。

相关推荐
帅那个帅3 小时前
go的雪花算法代码分享
开发语言·后端·golang
挖矿大亨3 小时前
C++中的引用
开发语言·c++
澄江静如练_3 小时前
表单输入绑定
服务器·前端·javascript
程序员阿鹏3 小时前
事务与 ACID 及失效场景
java·开发语言·数据库
猩球中的木子3 小时前
vue-plugin-hiprint打印高度不够,提示:没有足够空间,显示下方内容,问题处理方案及实操
前端·vue.js
程序员清风3 小时前
阿里二面:新生代垃圾回收为啥使用标记复制算法?
java·后端·面试
狗头大军之江苏分军3 小时前
Node.js 原生功能越来越强,我们是不是被 npm 玩坏了?
前端·javascript·架构
独自破碎E3 小时前
TS7016: Could not find a declaration file for module ‘vue-router‘.解决办法
前端·javascript·vue.js
趁月色小酌***3 小时前
JAVA 知识点总结2
java·开发语言
仰望星空@脚踏实地3 小时前
DataKit js-yaml和follow-redirects组件依赖影响分析
前端·datakit