我需要重构以下内容以延迟加载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;


一旦执行firefire2,如何仅在客户端上加载下载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

07-24 16:59