In JavaScript ermöglichen Ihnen Module, Ihren Code in kleinere, wiederverwendbare Teile zu unterteilen und so die Organisation, Wartbarkeit und Lesbarkeit zu verbessern. Module sind für die Erstellung skalierbarer Anwendungen unerlässlich, insbesondere wenn die Codebasis größer wird. Mit der Einführung von ES6 (ECMAScript 2015) verfügt JavaScript über ein natives Modulsystem, mit dem Sie Code zwischen verschiedenen Dateien importieren und exportieren können.
Ein Modul ist im Wesentlichen ein Codestück, das in einer eigenen Datei gespeichert ist. Dieser Code kann Variablen, Funktionen, Klassen oder jedes andere Konstrukt definieren, das Sie zur Verwendung in anderen Teilen der Anwendung verfügbar machen möchten.
Um Variablen, Funktionen oder Klassen aus einer Datei in einer anderen Datei verfügbar zu machen, verwenden Sie das Schlüsselwort export. Es gibt zwei Möglichkeiten, aus einem Modul in JavaScript zu exportieren: benannte Exporte und Standardexporte.
Mit benannten Exporten können Sie mehrere Elemente (Variablen, Funktionen usw.) aus einem Modul exportieren. Sie exportieren sie, indem Sie ihre Namen angeben.
// math.js (Module File) export const add = (a, b) => a + b; export const subtract = (a, b) => a - b;
Ein Standardexport ermöglicht Ihnen den Export eines einzelnen Werts, der eine Funktion, Klasse oder ein Objekt sein kann. Der Standardexport wird normalerweise verwendet, wenn Sie eine Hauptfunktion des Moduls exportieren möchten.
// math.js (Module File) export default function multiply(a, b) { return a * b; }
Um auf die exportierten Werte eines Moduls in einer anderen Datei zuzugreifen, verwenden Sie das Schlüsselwort import. Es gibt zwei Arten von Importen: benannte Importe und Standardimporte.
Beim Importieren benannter Exporte müssen Sie den genauen Namen verwenden, der in der Exportanweisung verwendet wurde.
// app.js (Main File) import { add, subtract } from './math.js'; console.log(add(2, 3)); // Output: 5 console.log(subtract(5, 3)); // Output: 2
Beim Importieren eines Standardexports können Sie einen beliebigen Namen für den importierten Wert wählen.
// app.js (Main File) import multiply from './math.js'; console.log(multiply(2, 3)); // Output: 6
Sie können benannte Importe auch mit einem Standardimport aus demselben Modul kombinieren.
// math.js export const add = (a, b) => a + b; export default function multiply(a, b) { return a * b; } // app.js import multiply, { add } from './math.js'; console.log(multiply(2, 3)); // Output: 6 console.log(add(2, 3)); // Output: 5
Sie können Klassen auf die gleiche Weise exportieren und importieren wie Funktionen und Variablen.
// math.js (Module File) export const add = (a, b) => a + b; export const subtract = (a, b) => a - b;
JavaScript unterstützt auch dynamische Importe, die es Ihnen ermöglichen, Module zur Laufzeit bedingt zu laden. Dies kann für die Codeaufteilung nützlich sein, bei der Sie Module nur bei Bedarf laden und so die anfängliche Ladezeit verkürzen.
// math.js (Module File) export default function multiply(a, b) { return a * b; }
In modernen Browsern können Sie ES6-Module nativ verwenden. Sie müssen lediglich das Attribut type="module" zu Ihrem