javascript模块化编程
对比es6与其他模块化方案
规范 | AMD | CMD | CommonJS | ES6 |
代表 | require.js | sea.js | Node.js | Node.js |
加载方式 | 预加载:在第一次访问时将所有文件加载出来 | 懒加载:使用时才会加载对应文件 | 通过 require 方法来同步加载 |
静态化加载 |
优缺点 |
优点:第一次访问后,再次访问的速度会很快 缺点:第一次加载页面要等待很久 |
优点:第一次访问速度快 缺点:再访问其他新的模块式速度慢 |
优点:服务器端模块便于重用 缺点:同步会阻塞加载,不能并行加载多个模块 |
优点:编译时就能确定模块的依赖关系,以及输入和输出的变量。 缺点:全新的命令字,新版的 Node.js才支持
|
ES6的模块化的基本规则或特点:
1:每一个模块只加载一次, 每一个JS只执行一次, 如果下次再去加载同目录下同文件,直接从内存中读取。 一个模块就是一个单例,或者说就是一个对象;
2:每一个模块内声明的变量都是局部变量, 不会污染全局作用域;
3:模块内部的变量或者函数可以通过export导出;
4:一个模块可以导入别的模块