2016-12-15 155 views

回答

1

模块是一种声明角度的东西的方法,它定义了这个逻辑块需要什么以及它由哪个逻辑块导出。如果您不在RootModule中导入SharedModule,则此SharedModule中定义的组件/服务/管道/ etc将不可用。例如,如果您希望能够使用某些内置指令(ngIfngFor等),则需要导入CommonModule(或BrowserModule)。

假设您的SharedModule定义了一个组件:AwesomeComponentawesome作为选择器。如果你想在你的RootModule中使用这个组件(你为什么不这样做,那太棒了?),你需要导入声明它的模块,否则角会抱怨(或者默默地失败) t知道这个<awesome>标签。

声明多个模块可以是有用的,如果你想分离的东西,它使您能够独立的库/部分应用程序,您可以重用。如果你制作一个新的应用程序,并意识到你几周前开发的真棒组件,它将完全适合它,如果它有自己的模块,你只需要导入它。

它也允许更容易的捆绑。而不是在每个延迟加载的模块中包含那个SharedModule(延迟加载的路由需要单独的模块),您将它捆绑/加载一次。

那么它会增加代码复杂度吗?是的,有点,但它有很多优点。

+0

感谢您的反馈。我很感激 – Albert

0

模块做没有相互继承遗产,所以尽管CharactersModule是要由AppModule(其中进口SharedModule的话)需要进口,CharactersModule无法访问共享的功能,除非我们导入SharedModule。这里SharedModule是不同的模块,CharactersModule是不同的模块,我们想在AppModule和CharactersModule中使用SharedModule,所以我们需要在两者中导入SharedModule

+0

谢谢Devansh。 – Albert

+0

非常欢迎和任何其他反馈对我来说。 @Albeart .. – Devansh