动态、条件导入

Avatar of Chris Coyier
Chris Coyier

DigitalOcean 为您旅程的每个阶段提供云产品。立即开始使用 $200 免费积分!

借助 ES 模块,您可以原生 import 其他 JavaScript。就像 彩带,当然了

import confetti from 'https://cdn.skypack.dev/canvas-confetti';
confetti();

import 语句只是 运行。不过,有一种模式可以有条件地执行它。就像这样

(async () => {
  if (condition) {
    // await import("stuff.js");

    // Like confetti! Which you have to import this special way because the web
    const { default: confetti } = await import(
      "https://cdn.skypack.dev/canvas-confetti@latest"
    );
    confetti();
  }
})();

为什么?任何类型的条件,我想。您可以检查 URL,只在特定页面上加载某些内容。您也可以只在特定条件下加载某些 Web 组件。我不知道。我敢肯定你可以想到一百万件事。

负责任的条件加载 是另一个想法。这里只在 saveData 不存在的情况下加载模块