1、AMD(异步模块定义)
是RequireJS在推广过程中对模块化定义的一个规范。
AMD是一个规范,RequireJS是它的实现。
RequireJS可以实现一个异步加载的功能,可以动态的异步的加载JS文件
特点: 依赖前置,将依赖的包放在第一个数组参数中,通过参数接收,得到加载的需要用到的包。在定义的时候,将需要的包就定义好
defined(['path/name'], function(package) {
callBack
});
2、CMD(同步模块定义)
是SeaJS在推广过程中对模块化定义的一个规范。
CMD是一个规范,SeaJS是它的实现。
SeaJS实现同步的,动态的加载JS文件
特点: 依赖就近,在什么地方使用,在什么地方加载
defined(function(require, exports, module) {
let Jquery = require('jquery');
});
3、CommonJS
是一个规范,通过module.exports实现,前端浏览器是不支持CommonJS规范的,CommonJS是在NodeJS中被服务器端支持的。
功能: 划分模块
语法:
exports.packageName = function() {};
//or 匿名输出
module.exports = {}
通过require导入
4、ES6导入导出
1)、匿名导出
默认,匿名输出
export default {}
//导入
import name from './fileName'
2)、具名导出
export let something = {}
导入的过程是一个解构的过程
import {something } from './fileName'
//导入也可以用另一种方式
import * as tool from './fileName'
可以通过tool.something 调用
//import 可以进行异步加载