之间有什么区别
动态import()
require()
是AMD技术(requireJS库)中的吗?
答案 0 :(得分:0)
有一些区别:
require()
是同步的,import()
是异步的(返回一个承诺)。
import
是ECMA规范中定义的关键字,require()
只是某些库定义的功能。
您可以在NodeJS而非浏览器中“本地”使用require()
,并且为所有JavaScript引擎指定import()
。
现在,如果您使用建筑管道(例如Webpack),它们实际上会做不同的事情:
require()
会将所需的代码打包为一捆,就像import stuff
一样,而import()
则在运行时动态加载模块,就像require.ensure
那样({{ 3}})
答案 1 :(得分:0)
有些差异,但是import()
可以被视为旧版 AMD库(例如require.js
)的正式实现。而且,它带来了一种现代化的方法。
传统AMD的不言而喻的功能是,除了导入表达式外,它还带有模块定义。这意味着您可以定义一个模块,该模块可以异步导入项目中的任何位置。
如果您没有像BABEL
这样的编译器来在项目中多填充EcmaScript提案,或者您使用的是旧代码库,并且需要AMD解决方案来提高性能,请考虑使用某些AMD库而不是动态库导入可能是更好的选择。