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
1. Implementieren Sie ein einfaches Dreieck Mithi...
Umsetzungseffekt: 1. count(1) und count(*) Wenn d...
Inhaltsverzeichnis 1. Handschriftliche Instanz vo...
In „MySQL-Deadlock-Probleme anhand des Quellcodes...
In diesem Artikel wird der spezifische Code von V...
1. Installieren Sie Apache # yum install -y httpd...
Die vollständige Syntax der SELECT-Anweisung laut...
In diesem Artikel wird der spezifische Code von V...
Verwenden Sie natives JS, um ein neuneckiges Rast...
Einführung yum (Yellow dog Updater, Modified) ist...
Bei der Installation von tortoiseGit gab es immer...
Die aktuelle Anforderung lautet: Es gibt eine Sch...
Kerncode -- Im Folgenden werde ich die Implementi...
Schauen wir uns zunächst die offizielle MySQL-Dok...
In einer Tabelle können Sie die Farbe des oberen ...