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。

相关推荐
夏幻灵几秒前
指针在 C++ 中最核心、最实用的两个作用:“避免大数据的复制” 和 “共享”。
开发语言·c++
一念之间lq几秒前
Elpis 第四阶段· Vue3 完成动态组件建设
前端·vue.js
akira09122 分钟前
滚动控制视频播放是如何实现的?GSAP ScrollTrigger + seek 实践 vivo官网案例
前端·产品
用户636836608554 分钟前
前端使用nuxt.js的seo优化
前端
OldBirds4 分钟前
烧脑时刻:Dart 中异步生成器与流
前端·后端
湛海不过深蓝6 分钟前
【echarts】折线图颜色分段设置不同颜色
前端·javascript·echarts
昨晚我输给了一辆AE867 分钟前
关于 react-hook-form 的 isValid 在有些场景下的值总是 false 问题
前端·react.js
八哥程序员8 分钟前
Chrome DevTools 详解系列之 Console 面板
javascript·chrome
xinyu_Jina13 分钟前
Calculator Game:WebAssembly在计算密集型组合优化中的性能优势
前端·ui·性能优化
ghie909015 分钟前
MATLAB 高速公路裂缝检测
开发语言·matlab