我需要重构以下内容以延迟加载LargeImport
:
const LargeImport = require('large-import');
const useLargeImport = new LargeImport();
const MyModule = {
init: function(){
if(something) {
this.fire()
} else {
this.fire2()
}
},
fire: function(){
useLargeImport.doSomething();
},
fire2: function(){
useLargeImport.doSomethingElse();
}
}
module.exports = MyModule;
一旦执行
fire
或fire2
,如何仅在客户端上加载下载LargeImport? 最佳答案
您可以在任何本机事件上使用异步import
。切记在函数开始时添加关键字async
<button
onClick={async () => {
await import("./child.js");
}}
>
click
</button>
您的代码可以更新为
fire: async function(){
useLargeImport.doSomething();
await import("./child.js");
},
演示代码和框链接-https://codesandbox.io/s/xenodochial-browser-tnrtj