gpt4 book ai didi

javascript - ES6 中的惰性模块加载是如何工作的

转载 作者:可可西里 更新时间:2023-11-01 01:40:31 28 4
gpt4 key购买 nike

如何延迟加载 ES6 模块? 惰性,我的意思是我不想实际加载不需要的模块。例如,这是我可以用 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 模块引入依赖项?或者是跟踪完整依赖关系图并预先获取所有内容的唯一途径?

最佳答案

import 语句只会在文件的最顶部起作用,并且会加载所有文件。这主要是为了避免循环依赖的潜在问题。

也会有办法做异步加载;但是规范似乎还没有最终确定。 ES6 module loader polyfill 包使用一个名为 System.import(moduleName) 的方法返回一个 promise ,最终的规范可能看起来很相似:

function someEventHandler() {
System.import('some-module').then((SomeModule) => {
var module = new SomeModule();
// ...
})
}

关于javascript - ES6 中的惰性模块加载是如何工作的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30033152/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com