Module sind eine Möglichkeit, Dinge in eckigen zu deklarieren, definiert, was von diesem logischen Block benötigt wird und was von ihm exportiert wird. Wenn Sie Ihre SharedModule
nicht in Ihre RootModule
importieren, sind die in dieser SharedModule
definierten Komponenten/services/pipes/etc nicht verfügbar. Wenn Sie beispielsweise einige integrierte Direktiven (ngIf
, ngFor
usw.) verwenden möchten, müssen Sie CommonModule
(oder BrowserModule
) importieren.
Angenommen, Ihre SharedModule
definiert eine Komponente: AwesomeComponent
mit awesome
als Selektor. Wenn Sie diese Komponente in Ihrer RootModule
verwenden möchten (und warum sollten Sie nicht, es ist toll?), Müssen Sie das Modul, das es deklariert, importieren, sonst eckig wird beschweren (oder scheitern still), dass es nicht tut Ich kenne dieses <awesome>
Tag.
Das Deklarieren mehrerer Module kann nützlich sein, wenn Sie Objekte isolieren möchten. Dadurch können Sie eine eigenständige Bibliothek/einen Teil der Anwendung erstellen, die Sie wiederverwenden können. Wenn du eine neue Anwendung machst und realisierst, dass die tolle Komponente, die du vor Wochen entwickelt hast, perfekt darin passt, wenn es ein eigenes Modul hat, musst du es nur importieren.
Es ermöglicht auch eine einfachere Bündelung. Anstatt das SharedModule
in jedes Lazy-Loaded-Module aufzunehmen (Lazy-Loaded-Routen benötigen separate Module), bündeln Sie es/laden es einmal für alle.
Erhöht es die Code-Komplexität? Ja, ein bisschen, aber es hat viele Vorteile.
Vielen Dank für Ihr Feedback. Ich weis das zu schätzen – Albert