Ich bin ein bisschen ein js-Neuling, und ich frage mich, ob jemand den Vorteil erklären könnte, dies in Ihrer angular2-Bootstrapping-Klasse zu tun (ich habe das von Ссылка ):
%Vor% vs macht nur platformBrowserDynamic().bootstrapModule(AppModule)
Und ich bin in meinem Denken richtig, dass der decorateModuleRef-Code in environment.ts
nur die Identität im prod-Modus zurückgibt, sonst ruft er enableDebugTools
für jede Komponentenreferenz auf, die er vom Injektor bezieht?
Der Hauptgrund dafür, dass Code existiert, ist die Hilfe bei Dev und HMR, wenn Sie das AngularClass HMR Repo lesen, mehr genau hier :
Produktion
In der Produktion brauchst du nur einen Bootloader, der das macht
%Vor%Sie würden Ihre App auf die normale Art und Weise starten, in der Produktion ist afer dom bereit. Außerdem sollten Sie in der Produktion den Loader entfernen
Aber warum brauchen Sie das? Der Hauptgrund ist:
Der Bootloaderwird nur benötigt, um zu erkennen, dass das dom bereits bereit ist ansonsten bootstrap bootstrap. Dies ist notwendig, weil das dom ist schon fertig beim Nachladen
Wenn Webpack also eine Dateiänderung bemerkt, kann es Angular2 veranlassen, sich selbst zum Rendern zu zwingen.
%Vor%Ja, das tut es genau. Aber ich denke, die AngularClass-Version des Bootstrapping ist ideal für die Entwicklung. Kürzlich begann auch, es zu benutzen. Es hilft alle Abhängigkeitsprobleme zu vermeiden.
Dies ist der Versuch, den Fall zu behandeln, wenn der Bootstrap-Code ausgeführt wird, nachdem DOMContentLoaded
event ausgelöst wurde, deshalb prüfen sie readyState
:
_decorateModuleRef
Identity-Version wird nur im Produktionsmodus durchgelassen (offensichtlich richtig? :), im Dev-Modus wird sie mit einer anderen Funktion überschrieben, die Debug- und Profil-Tools aktiviert. enableDebugTools
benötigt die Komponente ref als Argument, deshalb nehmen sie die erste Komponente (root app component) aus der App ref.