Heim > Artikel > Web-Frontend > Analyse von Beispielen für die Verarbeitung von Modulabhängigkeiten in SeaJS
Dieser Artikel stellt hauptsächlich die Ladeverarbeitung von Modulabhängigkeiten in Seajs vor und analysiert die Prinzipien, zugehörigen Vorsichtsmaßnahmen und die Verwendung von Seajs-Modulabhängigkeiten und -Laden in Form von Beispielen. Ich hoffe, dass er hilfreich sein kann alle.
Kürzlich habe ich bei der Arbeit an einem Projekt einige Probleme mit der Modulabhängigkeit entdeckt, die unten aufgeführt sind:
Zum Beispiel gibt es derzeit 3 Dateien:
/*init.js*/ define(function(require, exports, module){ require('jquery'); require('jquery.plugA'); }) /*jquery.plugA.js*/ define(function(require, exports, module){ require('jquery'); require('jquery.plugB'); //code... }) /*jquery.plugB.js*/ define(functioin(require, exports, module){ require('jquery'); //code... })
Wenn beispielsweise init.js ausgeführt wird, hängen init.js, jquery.plugA.js und jquery.plugB.js alle von jquery ab. Wie geht Seajs in diesem Fall mit jquery um? Nur einmal ausgeführt? Mehrmals ausführen? Oder anders?
Siehe Yubos Antwort hier:
Mein Verständnis von Modulaufrufen ist, dass sich Aufrufen auf den Erhalt der Schnittstelle eines bestimmten Moduls bezieht. In SeaJS generieren nur seajs.use, require.async und require Modulaufrufe, zum Beispiel: var a = require('./a') Beim Ausführen von require('./a') wird die Schnittstelle des Moduls abgerufen Wenn es zum ersten Mal aufgerufen wird, wird Modul a initialisiert, und wenn es später aufgerufen wird, wird die Schnittstelle von Modul a direkt zurückgegeben. define registriert nur Modulinformationen, zum Beispiel nach dem Packen: define(id, deps, Factory ) registriert ein Modul bei seajs. In .cache ist die Definition ähnlich: seajs.cache[id] = { id: id, dependencies: deps, Factory: Factory }
ist reine Registrierungsinformation.
Seajs.cache['a'].factory wird nur ausgeführt, wenn require('./a') ausgeführt wird. Nach der Ausführung wird seajs.cache['a'].exports
werden erhalten. Verwandte Empfehlungen:
Das obige ist der detaillierte Inhalt vonAnalyse von Beispielen für die Verarbeitung von Modulabhängigkeiten in SeaJS. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!