Heim  >  Artikel  >  Web-Frontend  >  Analyse von Beispielen für die Verarbeitung von Modulabhängigkeiten in SeaJS

Analyse von Beispielen für die Verarbeitung von Modulabhängigkeiten in SeaJS

小云云
小云云Original
2018-01-26 10:47:391223Durchsuche

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:

Detaillierte Erläuterung der Parsing-Regeln von Modulen in Seajs und Zusammenfassung der Modulnutzung_Seajs

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn