前端模块化

一、CommonJS 应用:node.js
1,四个环境变量:module,exports,require,global.
2,用module.exports定义当前模块对外输出的接口(不推荐直接用exports)
用require加载模块

module.exports= {
add,
...
}

总结:commonjs用同步的方式加载模块。
在服务端,模块文件都存在本地磁盘,读取非常快,所以不会有问题,但是在浏览器端,限于网络原因,更合理的方案是使用异步加载

二、AMD和require.js
总结:异步方式加载模块
AMD推崇依赖前置、提前执行

三、CMD和sea.js
CMD推崇依赖就近,延迟执行

四、es6 module
浏览器和服务器通用的模块解决方案
模块功能:export 和 import 和 export default
export命令用于规定模块的对外接口
import命令用于输入其他模块提供的功能

export default为模块指定默认输出,对应的import不需要指定加载的变量名和函数名

五、es6模块与commonjs模块的差异
1、commonjs模块输出的是一个值的拷贝,es6模块输出的是值的引用
2、commonjs模块是运行时加载,es6模块是编译时输出接口

你可能感兴趣的:(前端模块化)