


Was ist modulare Programmierung? Zusammenfassung der modularen js-Programmierung
1 Was ist modulare Programmierung
2 Warum sollten wir modularisieren
3 AMD
4 CommonJS
5 Zusammenfassung
Um eine Technologie zu verstehen, müssen Sie zunächst den Hintergrund der Technologie und die Probleme verstehen, die sie löst, und nicht nur wissen, wie man sie nutzt. Der vorherige Zustand bestand möglicherweise darin, nur um des Verständnisses willen zu verstehen, ohne die tatsächlichen Ursachen und Vorteile zu kennen. Fassen wir ihn also heute zusammen.
1 Was ist modulare Programmierung? In mehrere kleine Programmmodule unterteilt, erfüllt jedes kleine Programmmodul eine bestimmte Funktion, stellt die erforderlichen Verbindungen zwischen diesen Modulen her und vervollständigt die gesamte Funktion durch die gegenseitige Zusammenarbeit der Module.
Zum Beispiel Javas Import, C#s Verwendung. Mein Verständnis ist, dass durch modulare Programmierung verschiedene Funktionen getrennt werden können und die Änderung einer Funktion keine Auswirkungen auf andere Funktionen hat.Es gibt ein weiteres Problem, das zwei globale Variablen offenlegt, die leicht zu einer Verschmutzung globaler Variablen führen können3 AMDAMD ist Asynchronous Module Definition (asynchrone Moduldefinition). ). Das Modul wird asynchron geladen. Das Laden des Moduls hat keinen Einfluss auf die Ausführung nachfolgender Anweisungen. Nehmen Sie die folgende Situation an:2 Warum Modularisierung? B.js wird ebenfalls zitiert. Wenn die Person, die C.js schreibt, nur weiß, dass B.js zitiert wird, wird sie A.js nicht zitieren, was zu einem Programmfehler führt und die Referenzreihenfolge der Dateien nicht falsch sein kann. Dies führt zu Unannehmlichkeiten beim Debuggen und Ändern des gesamten Codes.
// A.jsfunction sayWord(type){ if(type === 1){ console.log("hello"); }else if(type === 2){ console.log("world"); } }// B.jsfunction Hello(){ sayWord(1); }// C.jsHello()
und dann
. Daher hat das Laden von AMD keinen Einfluss auf die nachfolgende Ausführung der Anweisung. Was passiert, wenn es nicht asynchron geladen wird?// util.jsdefine(function(){ return { getFormatDate:function(date,type){ if(type === 1){ return '2018-08-9' } if(type === 2){ return '2018 年 8 月 9 日' } } } })// a-util.jsdefine(['./util.js'],function(util){ return { aGetFormatDate:function(date){ return util.getFormatDate(date,2) } } })// a.jsdefine(['./a-util.js'],function(aUtil){ return { printDate:function(date){ console.log(aUtil.aGetFormatDate(date)) } } })// main.jsrequire(['./a.js'],function(a){ var date = new Date() a.printDate(date) }) console.log(1);// 使用// <script src = "/require.min.js" data-main="./main.js"></script>
1
Hauptprobleme, die durch RequireJS gelöst werden2018 年 8 月 9 日
- Sehen wir uns an, wie require.js verwendet wirdUm require.js zu verwenden, müssen Sie zuerst definieren
- id: bezieht sich auf den Namen des definierten Moduls
var a = require('a'); console.log(1)
- factory: Initialisiert die Funktion oder das Objekt, die für das Modul ausgeführt werden sollen. Wenn es sich um eine Funktion handelt, sollte sie nur einmal ausgeführt werden. Wenn es sich um ein Objekt handelt, sollte dieses Objekt der Ausgabewert des Moduls sein. Spezifische Spezifikationen finden Sie bei AMD (chinesische Version) Erstellen Sie beispielsweise ein Modul mit dem Namen „Alpha“, verwenden Sie require, exports und ein Modul mit dem Namen „Beta“:
// ? 代表该参数可选 define(id?, dependencies?, factory);
Nach dem Login kopierenEin anonymes Modul, das ein Objekt zurückgibt: define("alpha", ["require", "exports", "beta"], function (require, exports, beta) { exports.verb = function() { return beta.verb(); //Or: return require("beta").verb(); } });
Nach dem Login kopierenEin Modul ohne Abhängigkeiten, das Objekte direkt definieren kann:
define(["alpha"], function (alpha) { return { verb: function(){ return alpha.verb() + 2; } }; });
Nach dem Login kopierenVerwendung
AMD verwendet die require-Anweisung, um Module zu laden
define({ add: function(x, y){ return x + y; } });
- Zum BeispielDie spezifische Verwendungsmethode ist wie folgt
require([module],callback);
Nach dem Login kopieren - Angenommen, es gibt hier 4 Dateien, util. js, a-util.js bezieht sich auf util.js, a.js bezieht sich auf a-util.js und main.js bezieht sich auf a.js. Unter anderem wird das Attribut data-main zum Laden des Hauptmoduls des Webseitenprogramms verwendet.
require(['./a.js'],function(a){ var date = new Date() a.printDate(date) })
, um das Ladeverhalten des Moduls anzupassen.
steht an der Spitze des Hauptmoduls (main.js). Das paths-Attribut dieses Objekts gibt den Ladepfad jedes Moduls an das Basisverzeichnis (baseUrl)// util.jsdefine(function(){ return { getFormatDate:function(date,type){ if(type === 1){ return '2018-08-09' } if(type === 2){ return '2018 年 8 月 9 日' } } } })// a-util.jsdefine(['./util.js'],function(util){ return { aGetFormatDate:function(date){ return util.getFormatDate(date,2) } } })// a.jsdefine(['./a-util.js'],function(aUtil){ return { printDate:function(date){ console.log(aUtil.aGetFormatDate(date)) } } })// main.jsrequire(['./a.js'],function(a){ var date = new Date() a.printDate(date) })// 使用//
require.config({ paths:{ "a":"src/a.js", "b":"src/b.js" } })
require.config()
verwendet wird. Dann Sie können einfach die von util bereitgestellten Methoden aufrufen require.config()
require.config({ baseUrl: "src", paths: { "a": "a.js", "b": "b.js", } });
const util = require('util');
// foobar.js // 定义行为 function foobar(){ this.foo = function(){ console.log('Hello foo'); } this.bar = function(){ console.log('Hello bar'); } } // 把 foobar 暴露给其它模块 exports.foobar = foobar;// main.js//使用文件与模块文件在同一目录var foobar = require('./foobar').foobar, test = new foobar(); test.bar(); // 'Hello bar'
5 总结
CommonJS 则采用了服务器优先的策略,使用同步方式加载模块,而 AMD 采用异步加载的方式。所以如果需要使用异步加载 js 的话建议使用 AMD,而当项目使用了 npm 的情况下建议使用 CommonJS。
相关推荐:
Das obige ist der detaillierte Inhalt vonWas ist modulare Programmierung? Zusammenfassung der modularen js-Programmierung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



In Artikel werden JavaScript -Bibliotheken erstellt, veröffentlicht und aufrechterhalten und konzentriert sich auf Planung, Entwicklung, Testen, Dokumentation und Werbestrategien.

In dem Artikel werden Strategien zur Optimierung der JavaScript -Leistung in Browsern erörtert, wobei der Schwerpunkt auf die Reduzierung der Ausführungszeit und die Minimierung der Auswirkungen auf die Lastgeschwindigkeit der Seite wird.

Häufig gestellte Fragen und Lösungen für das Ticket-Ticket-Ticket-Ticket in Front-End im Front-End-Entwicklungsdruck ist der Ticketdruck eine häufige Voraussetzung. Viele Entwickler implementieren jedoch ...

In dem Artikel werden effektives JavaScript -Debuggen mithilfe von Browser -Entwickler -Tools, der Schwerpunkt auf dem Festlegen von Haltepunkten, der Konsole und der Analyse der Leistung erörtert.

In dem Artikel wird erläutert, wie Quellkarten zum Debuggen von JavaScript verwendet werden, indem er auf den ursprünglichen Code zurückgegeben wird. Es wird erläutert, dass Quellenkarten aktiviert, Breakpoints eingestellt und Tools wie Chrome Devtools und WebPack verwendet werden.

In diesem Artikel wird der effektive Gebrauch des Sammlungsrahmens von Java untersucht. Es betont die Auswahl geeigneter Sammlungen (Liste, Set, Karte, Warteschlange) basierend auf Datenstruktur, Leistungsanforderungen und Thread -Sicherheit. Optimierung der Sammlungsnutzung durch effizientes Gebrauch

Sobald Sie das Typscript-Tutorial für Einstiegsklasse gemeistert haben, sollten Sie in der Lage sein, Ihren eigenen Code in eine IDE zu schreiben, die TypeScript unterstützt und in JavaScript zusammenfasst. Dieses Tutorial wird in verschiedenen Datentypen in TypeScript eingetaucht. JavaScript hat sieben Datentypen: NULL, UNDEFINED, BOOLEAN, NUMMER, STRING, SYMBOL (durch ES6 eingeführt) und Objekt. TypeScript definiert mehr Typen auf dieser Grundlage, und dieses Tutorial wird alle ausführlich behandelt. Null -Datentyp Wie JavaScript, null in TypeScript

In diesem Tutorial wird erläutert, wie man mit Diagramm.js Kuchen-, Ring- und Bubble -Diagramme erstellt. Zuvor haben wir vier Chart -Arten von Charts gelernt. Erstellen Sie Kuchen- und Ringdiagramme Kreisdiagramme und Ringdiagramme sind ideal, um die Proportionen eines Ganzen anzuzeigen, das in verschiedene Teile unterteilt ist. Zum Beispiel kann ein Kreisdiagramm verwendet werden, um den Prozentsatz der männlichen Löwen, weiblichen Löwen und jungen Löwen in einer Safari oder den Prozentsatz der Stimmen zu zeigen, die verschiedene Kandidaten bei der Wahl erhalten. Kreisdiagramme eignen sich nur zum Vergleich einzelner Parameter oder Datensätze. Es ist zu beachten, dass das Kreisdiagramm keine Entitäten ohne Wert zeichnen kann, da der Winkel des Lüfters im Kreisdiagramm von der numerischen Größe des Datenpunkts abhängt. Dies bedeutet jede Entität ohne Anteil
