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。

相关推荐
wordbaby2 分钟前
TanStack Router 基于文件的路由
前端
LYFlied2 分钟前
【每日算法】LeetCode 105. 从前序与中序遍历序列构造二叉树
数据结构·算法·leetcode·面试·职场和发展
wordbaby7 分钟前
TanStack Router 路由概念
前端
努力学习的小廉8 分钟前
【QT(六)】—— 常用控件(三)
开发语言·qt
wordbaby9 分钟前
TanStack Router 路由匹配
前端
cc蒲公英10 分钟前
vue nextTick和setTimeout区别
前端·javascript·vue.js
Z.yping14 分钟前
qt语言家一键更新或发布多个模块且多个国家的语言
开发语言·qt·restful
程序员刘禹锡15 分钟前
Html中常用的块标签!!!12.16日
前端·html
MSTcheng.17 分钟前
【C++】set / multiset 保姆级教程:从底层原理到实战应用!
开发语言·c++·set
历程里程碑17 分钟前
C++ 16:C++11新特化
c语言·开发语言·数据结构·c++·经验分享