Vorwort: 1. Konzept
2. Die Vorteile der Modularität
3. Probleme nach der Einführung mehrerer Skript-Tags
//index.html <!DOCTYPE html> <html lang="de"> <Kopf> <meta charset="UTF-8"> <title>Titel</title> <script src="jQuery.js"></script> <script src="module.js"></script> </Kopf> <Text> <div>123</div> </body> <Skript> meinModul.foo(); meinModul.bar(); console.log(meinModul.daten); meinModul.data = "xxxx"; meinModul.foo(); </Skript> </html> //module.js IIFE (anonyme, selbstaufrufende Funktion) ;(Funktion(Fenster,$){ let data = "www.baidu.com"; Funktion foo() { Konsole.log(`foo() ${data}`); //Hier müssen Sie die jQuery-Bibliothek verwenden $('body').css('background', 'red') } Funktion bar() { Konsole.log(`bar() ${data}`); andererSpaß(); } Funktion andererSpaß() { Konsole.log(`otherFun()`); } window.myModule = { foo, bar }; })(Fenster, jQuery) 1. GemeinsamesJS
Merkmale:
Grammatik:
Die Der Befehl Der Lademechanismus von AMD
Verwenden von require.js <!-- index.html --> <script src="https://cdn.bootcdn.net/ajax/libs/require.js/2.3.6/require.js"></script> //Definiere ein Modul1 ohne Abhängigkeiten define('module1', () => { lass count = 0; const add = () => ++ Anzahl; const reset = () => Anzahl = 0; const Großbuchstaben = Zeichenfolge => Zeichenfolge.toUpperCase() zurückkehren { hinzufügen, zurücksetzen, Großbuchstaben } }) //Definiere ein Modul2 mit Abhängigkeiten, das von Modul1 abhängt definieren('Modul2',['Modul1'], (Modul1) => { const showMsg = () => module1.upperCase('hallo-amd'); zurückkehren { Nachricht anzeigen } }) <!-- Modul in der HTML-Datei verwenden --> <Text> <Skript> erfordern.config({ Pfade: { Modul1: './Module/Modul1', Modul2: „./Module/Modul2“ } }) erfordern(['Modul1', 'Modul2'], (Modul1, Modul2) => { konsole.log(module1.add()) // 1 konsole.log(module1.reset()) //0 console.log(module2.showMsg()) //HALLO-AMD }) </Skript> </body> 3. CMD
Verwenden von sea.js <script src="https://cdn.bootcdn.net/ajax/libs/seajs/3.0.3/sea.js"></script> //Modul module1 definieren definieren((erfordern, Exporte, Modul) => { let string = 'Ich bin ein String'; const readString = () => 'Modul1 anzeigen() ' + Zeichenfolge; //Der Außenwelt zugänglich machen exports.readString = readString; }) //Modul module2 definieren definieren((erfordern, Exporte, Modul) => { exports.msg = "Ich bin es" }) //Modul definieren definieren((erfordern, Exporte, Modul) => { //Abhängige Module einführen (synchron) var Modul1 = erforderlich('./Modul1'); console.log(module1.readString()) // module1 show() Ich bin ein String //Abhängige Module einführen (asynchron) erfordern.async('./module2', md2 => { console.log(`Dies wird asynchron importiert: ${md2.msg}`) //Dies wird asynchron importiert: Ich bin es}) }) <!-- HTML-Datei verwendet Modul --> <Text> <Skript> seajs.use('./modules/modul') </Skript> ES6-Modularität Die Designidee von ES6-Modulen besteht darin, so statisch wie möglich zu sein, sodass die Modulabhängigkeiten sowie die Eingabe- und Ausgabevariablen zur Kompilierungszeit bestimmt werden können. Sowohl CommonJS- als auch AMD-Module können diese Dinge nur zur Laufzeit bestimmen.
//mian.js Standard exportieren { Nachricht anzeigen() { console.log('hahahahaha') } } export const msg = "Es ist eine wunderschöne Zeit mit Vollmond und Blumen!" //index.js importiere module1 von "./module1"; //entspricht dem Exportstandard module1.showMsg() import { msg } from './module1'; //entspricht export Konsole.log(Nachricht) /*Tipps: Verwenden Sie nicht <script type="module"> in HTML Importieren … Es gibt domänenübergreifende Probleme. Sie können ein Plug-In in vscode herunterladen oder einen lokalen Dienst starten, um es zu lösen. Ich werde nicht ins Detail gehen. </script>*/ Dies ist das Ende dieses Artikels mit der detaillierten Erklärung der JavaScript-Modularisierung. Weitere relevante Inhalte zur JavaScript-Modularisierung finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den verwandten Artikeln weiter unten. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: Detaillierte Erläuterung der gleichzeitigen Parameteranpassung von MySQL
>>: CSS nutzt geschickt Farbverläufe, um eine erweiterte Hintergrundlichtanimation zu erzielen
Nach der Konfiguration der TabBar im WeChat-Apple...
Wir haben vorgestellt, wie man mit den CSS3-Spalt...
Inhaltsverzeichnis Einführung Frage Design 1: Adj...
Dieser Artikel wurde aus dem Blog „Usability Count...
Erster Weg: skip-grant-tables: Sehr nützliche MyS...
Ich habe vor kurzem ein Skript zum Hochladen mehr...
Definition und Verwendung: Verwenden Sie die Slot...
Dieser Artikel stellt hauptsächlich den Beispielc...
Welche Rolle spielt http im Knoten? Die Aufgabe d...
Installieren Stellen Sie sicher, dass Ihr Benutze...
Inhaltsverzeichnis 1. Passen Sie den Inhalt der S...
Es gibt zwei Lösungen: Eine Möglichkeit ist CSS, b...
<Text> <div id="Wurzel"> &l...
Inhaltsverzeichnis 1. Einführung in NFS-Ganesha 2...
Das Div+CSS-Layout zur Erzielung einer 2-Enden-Au...