共计 521 个字符,预计需要花费 2 分钟才能阅读完成。
commonJS 和 ES6 模块的区别
- CommonJS 输入的模块是一个值的拷贝,ES 模块输入的是一个模块的援用;
- CommonJS 模块输入的是值的拷贝,一旦输入之后,无论模块外部怎么变动,都无奈影响之前的援用,
- commonJS 会缓存加载的模块,前面间接从缓存外面取值;
- ESModule import 一个模块后生成一个援用链接,在脚本真正执行时才会依据这个援用链接去模块外面取值,模块外部的原始值变了 import 加载的模块也会变。
- CommonJS 运行时加载,ESModule 编译阶段援用。
- CommonJS 在引入时是加载整个模块,生成一个对象,而后再从这个生成的对象上读取办法和属性。
- ESModule 不是对象,而是通过 export 暴露出要输入的代码块,在 import 时应用动态命令的办法援用指定的输入代码块,并在 import 语句处执行这个要输入的代码,而不是间接加载整个模块。
- 裸露形式的区别,commonJS modules.exports = {module};ES6 export default module 或者 export module
- 引入形式 commonJS require(“module”) es6 import {moduleName} from “module”
正文完