es6模块、commonJs、AMD和CMD主要区别
| 输出 | 导入 | 区别 | |
| commonJs | module.exports | require |
运行时加载,最初引入是一个对象,在运行时才能确定依赖关系 是值的拷贝,值是缓存的,第二次加载时候不会执行,直接去缓存拿输出结果 |
| es6模块 |
export {foo} export default foo export default foo 相当于export {foo as default} 导出一个名为“default”的变量或方法 |
import |
编译时确定依赖关系,只会引入需要的模块 是值的引用,值是动态的,模块内值被改变后,导入文件内的值也会变化 只能写在最上面,不能写在其他语句之后,否则编译会报错 |
commonJs主要用于服务端,是同步的,相应的AMD(requireJs依赖前置) 和CMD(seaJs就近依赖)主要用于客户端,是异步的

浙公网安备 33010602011771号