Dynamische, bedingte Importe

Avatar of Chris Coyier
Chris Coyier am

DigitalOcean bietet Cloud-Produkte für jede Phase Ihrer Reise. Starten Sie mit 200 $ kostenlosem Guthaben!

Mit ES Modules können Sie nativ andere JavaScript-Dateien importen. Wie Konfetti, klar

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

Diese import-Anweisung wird einfach ausgeführt. Es gibt jedoch ein Muster, um sie bedingt auszuführen. Es ist so ähnlich

(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();
  }
})();

Warum? Jede Art von Bedingung, nehme ich an. Sie könnten die URL überprüfen und bestimmte Dinge nur auf bestimmten Seiten laden. Sie könnten bestimmte Webkomponenten nur unter bestimmten Bedingungen laden. Ich weiß nicht. Ich bin sicher, Ihnen fallen tausend Dinge ein.

Verantwortungsvolles, bedingtes Laden ist eine weitere Idee. Hier wird ein Modul nur geladen, wenn saveData nicht aktiviert ist