SeaJS ist ein JavaScript -Modul -Lade -Framework, das der CommonJS -Spezifikation folgt. Es ist ein modernes Modul -Ladewerkzeug für die Webentwicklung und bietet ein einfaches und ultimatives modulares Erlebnis. Sea.js wird gemeinsam von Alibaba, Tencent und anderen Unternehmen unterhalten.
Vorteile der Verwendung von Sea.js:
Sea.js verfolgt einfache und natürliche Methoden des Schreibens und der Organisation von Code mit den folgenden Kernfunktionen:
Einfache und freundliche Moduldefinitionsspezifikation: Sea.js folgt der CMD -Spezifikation und kann Modulcode wie node.js.
Natürliche und intuitive Codeorganisation: Das automatische Laden von Abhängigkeiten und die präzise und klare Konfiguration ermöglichen es uns, mehr Codierung zu genießen.
Sea.js bietet auch gemeinsame Plugins, die für Entwicklungsdebugging und Leistungsoptimierung sehr hilfreich sind und reichhaltige Schnittstellen aufweisen.
Unten werde ich die drei Module von Sea.js vorstellen
Verwenden Sie Exporte, Exporte ist ein Objekt, das Modulschnittstellen nach außen bereitstellt.
Define (Funktion (Anforderung, Exportieren, Modul) {var a = require ("./ init"); var fun1 = function () {return A.Write ("Modul Hauptaufruf Die Schreibmethode des Moduls init");}; exports.fun1 = fun1;});Zusätzlich zum Hinzufügen von Mitgliedern zum Exportobjekt können Sie auch die Return verwenden, um Schnittstellen direkt nach außen bereitzustellen.
Define (Funktion (Anforderung, Exporte, Modul) {var a = require ("./ init"); var fun1 = function () {return A.Write ("Modul Main ruft die Schreibmethode des Moduls init");}; return {fun1: fun1}}) return {fun1: fun1}})Wenn das Modul keine Geschäftslogik hat, geben Sie einfach ein Objekt zurück, es kann zu Folgendem vereinfacht werden
define ({fun1: function () {alert ("Fun1 Call of Modul Main erfolgreich")}});Eine andere Möglichkeit besteht darin, eine einheitliche Schnittstelle über modul.exports bereitzustellen, zum Beispiel:
Define (Funktion (Anforderung, Exportieren, Modul) {var a = required ("./ init"); // ist das aktuelle Verzeichnis. alert ("bb")}; module.exports = {fun1: fun1}});Exporte sind nur ein Hinweis auf modul.exports. Bei der Neuzuweisung von Exporten innerhalb der Methode wird der Wert von Modul.exports nicht geändert. Daher ist die Zuordnung des Exportewerts ungültig. Die obige Methode enthält nur einen externen Fun1. Die obige Methode B -Zuordnung ist ungültig und kann nicht verwendet werden, um die Modulschnittstelle zu ändern.
exports.async ()
fordern.async (id || [], Rückruf?)
Mit der Methode des Request.aSync wird das Modul asynchron im Modul geladen und den angegebenen Rückruf nach Abschluss des Ladens ausgeführt. Der Rückrufparameter ist optional.
Define (Funktion (Anforderung, Exportieren, Modul) {required.async ('./ init', function (a) {A.Write ("Modul Hauptaufruf Die Schreibmethode des Moduls init")}); fordert.async (['./ Init', "./ Search"], Funktion (a, b) {A. moduls erfolgreich ("modules modules modules modules modules modules modules methody der module init"; eingeführt ")});});Das Modulmodul ist ein Objekt, das einige Eigenschaften und Methoden speichert, die dem aktuellen Modul zugeordnet sind.
1 Modul.id String
Eindeutige Identifizierung des Moduls.
2 Modul.uri String
Der Absolute -Modulpfad, der gemäß den Pfadanalyseregeln des Modulsystems erhalten wurde. Im Allgemeinen ist der Wert von modul.id modul.uri, was genau gleich ist.
3 Modul.Daffendcies Array
Abhängigkeiten sind ein Array, das die Abhängigkeiten des aktuellen Moduls darstellt.