我怎么能够延迟加载ES6 模块?经过lazy,我的意思是我不想实际加载模块不需要。例如,我可以使用 RequireJS 执行以下操作:
function someEventHandler() {
var SomeModule = require('some-module'),
module = new SomeModule();
// ...
}
使用 ES6 导入似乎不可能实现相同的功能:
// Doesn't appear to be valid...
function someEventHandler() {
import SomeModule from 'some-module';
var module = new SomeModule();
// ...
}
是否有任何可行的技术可以使用 ES6 模块仅在需要时引入依赖项?或者是跟踪完整依赖关系图并预先获取所有内容的唯一路径?
The import
语句仅适用于文件的最顶部,并且它将加载所有文件。这主要是为了避免循环依赖的潜在问题。
还会有一种方法可以进行异步加载;但该规范似乎尚未最终确定。这ES6 模块加载器 https://github.com/ModuleLoader/es6-module-loaderpolyfill 包使用了一种名为System.import(moduleName)
返回一个承诺,最终规范可能看起来类似:
function someEventHandler() {
System.import('some-module').then((SomeModule) => {
var module = new SomeModule();
// ...
})
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)