Angular 2文檔狀態「共享功能模塊必須由任何預期使用其可聲明的模塊導入」。爲什麼必須將SharedModule導入到根模塊?
我想知道爲什麼必須將共享功能模塊導入到根模塊中。它會增加代碼庫的複雜性嗎?
Angular 2文檔狀態「共享功能模塊必須由任何預期使用其可聲明的模塊導入」。爲什麼必須將SharedModule導入到根模塊?
我想知道爲什麼必須將共享功能模塊導入到根模塊中。它會增加代碼庫的複雜性嗎?
模塊是一種聲明角度的東西的方法,它定義了這個邏輯塊需要什麼以及它由哪個邏輯塊導出。如果您不在RootModule
中導入SharedModule
,則此SharedModule
中定義的組件/服務/管道/ etc將不可用。例如,如果您希望能夠使用某些內置指令(ngIf
,ngFor
等),則需要導入CommonModule
(或BrowserModule
)。
假設您的SharedModule
定義了一個組件:AwesomeComponent
和awesome
作爲選擇器。如果你想在你的RootModule
中使用這個組件(你爲什麼不這樣做,那太棒了?),你需要導入聲明它的模塊,否則角會抱怨(或者默默地失敗) t知道這個<awesome>
標籤。
聲明多個模塊可以是有用的,如果你想分離的東西,它使您能夠獨立的庫/部分應用程序,您可以重用。如果你製作一個新的應用程序,並意識到你幾周前開發的真棒組件,它將完全適合它,如果它有自己的模塊,你只需要導入它。
它也允許更容易的捆綁。而不是在每個延遲加載的模塊中包含那個SharedModule
(延遲加載的路由需要單獨的模塊),您將它捆綁/加載一次。
那麼它會增加代碼複雜度嗎?是的,有點,但它有很多優點。
感謝您的反饋。我很感激 – Albert