ES6 动态 Import() 与 AMD require()

Adr*_*bka 5 javascript amd requirejs ecmascript-6

之间有什么区别:

  • import()ES6+ 技术的动态以及

  • require()在 AMD 技术(requireJS 库)中?

Jon*_*lms 2

有一些区别:

require()是同步的,import()是异步的(返回一个 Promise)。

import是 ECMA 规范中定义的关键字,require()只是某个库定义的函数。

您可以require()在 NodeJS 中使用“本机”,而不是在浏览器中使用,并且import()为所有 JavaScript 引擎指定。

现在,如果您使用构建管道(例如 Webpack),它们实际上会做不同的事情:

require()将把所需的代码捆绑到一个包中,就像import stuff那样,而import()在运行时动态加载模块,就像那样require.ensure(doc)

  • 鉴于这个问题专门针对 AMD 和 requireJS,*“require()”和“import()”都是异步的。 (2认同)