Ich bin ein Neuling in Angular.js und versuche zu verstehen, wie es sich von Backbone.js... Wir haben unsere Pakete Abhängigkeiten mit Require.js zu verwalten, während mit Backbone. Macht es Sinn, dasselbe mit Angular.js zu tun?
Antworten
Zu viele Anzeigen?Wie @ganaraj erwähnt hat AngularJS Dependency Injection in seinem Kern. Bei der Erstellung von Spielzeug-Seed-Anwendungen mit und ohne RequireJS fand ich persönlich, dass RequireJS für die meisten Anwendungsfälle wahrscheinlich zu viel des Guten war.
Das bedeutet nicht, dass RequireJS nicht nützlich ist, um Skripte zu laden und Ihre Codebasis während der Entwicklung sauber zu halten. Die Kombination mit dem r.js-Optimierer ( https://github.com/jrburke/r.js ) mit Mandeln ( https://github.com/jrburke/almond ) kann eine sehr schlanke Skriptladegeschichte erstellen. Da die Funktionen zur Verwaltung von Abhängigkeiten jedoch nicht so wichtig sind, wenn Angular der Kern Ihrer Anwendung ist, können Sie auch andere clientseitige (HeadJS, LABjs, ...) oder sogar serverseitige (MVC4 Bundler, ...) Lösungen zum Laden von Skripten für Ihre spezielle Anwendung evaluieren.
Ja, vor allem bei sehr großen SPAs ist das der Fall.
In manchen Szenarien ist RequireJS ein Muss. Ich entwickle zum Beispiel PhoneGap-Anwendungen mit AngularJS, die auch die Google Map API verwenden. Ohne AMD-Loader wie RequireJS würde die App beim Start einfach abstürzen, wenn sie offline ist, da sie die Google Map API-Skripte nicht beziehen kann. Ein AMD-Loader gibt mir die Möglichkeit, dem Benutzer eine Fehlermeldung anzuzeigen.
Die Integration von AngularJS und RequireJS ist jedoch etwas kompliziert. Ich habe angularAMD erstellt, um diesen Prozess weniger schmerzhaft zu gestalten:
Ja, es macht Sinn, requireJS mit Angular zu verwenden, ich habe mehrere Tage damit verbracht, verschiedene technische Lösungen zu testen.
Ich habe ein Angular Seed mit RequireJS auf der Server-Seite gemacht. Ein sehr einfaches. Ich verwende die SHIM-Notation für kein AMD-Modul und nicht AMD, weil ich denke, dass es sehr schwierig ist, mit zwei verschiedenen Dependency-Injection-Systemen umzugehen.
Ich verwende Grunt und r.js, um js-Dateien auf dem Server zu verketten, abhängig von der SHIM-Konfigurationsdatei (Abhängigkeiten). So verweise ich nur eine js-Datei in meiner App.
Weitere Informationen finden Sie auf meinem Github Angular Seed : https://github.com/matohawk/angular-seed-requirejs
Es ist sinnvoll, RequireJS mit Angularjs zu verwenden, wenn Sie planen, Controller und Direktiven usw. träge zu laden, und gleichzeitig mehrere träge Abhängigkeiten in einzelnen Skriptdateien zu kombinieren, um das träge Laden zu beschleunigen. RequireJS hat eine Optimierungsinstrument die das Kombinieren leicht macht. Siehe http://ify.io/using-requirejs-with-optimisation-for-lazy-loading-angularjs-artefacts/