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。

相关推荐
一勺菠萝丶几秒前
芋道项目部署:前端写死后端地址 vs Nginx 反向代理
前端·nginx·状态模式
ytttr8736 分钟前
基于人工蜂群算法(ABC)的MATLAB数值计算求解框架
开发语言·算法·matlab
Dxy12393102169 分钟前
Python如何使用DrissionPage做自动化:简单入门指南
开发语言·python·自动化
珂朵莉MM10 分钟前
2025年睿抗机器人开发者大赛CAIP-编程技能赛-高职组(国赛)解题报告 | 珂学家
java·开发语言·人工智能·算法·机器人
do better myself13 分钟前
php 使用IP2Location限制指定的国家访问实现
开发语言·php
pas13616 分钟前
30-mini-vue 更新 element 的 props
前端·javascript·vue.js
a努力。17 分钟前
虾皮Java面试被问:JVM Native Memory Tracking追踪堆外内存泄漏
java·开发语言·jvm·后端·python·面试
Kratzdisteln18 分钟前
【Python】Flask
开发语言·python·flask
古城小栈22 分钟前
Rust 并发、异步,碾碎它们
开发语言·后端·rust
Evand J25 分钟前
【MATLAB代码介绍】【空地协同】UAV辅助的UGV协同定位,无人机辅助地面无人车定位,带滤波,MATLAB
开发语言·matlab·无人机·协同·路径·多机器人