Angular 2 核心模块和功能模块的区别

Angular 2 difference between core and feature modules

我不明白core and feature modules in angular 2. As far as I understand there are three recommended types of modules: core, feature and shared之间的区别。

如果一个模块导出一些声明(组件、指令和管道)并且许多模块将导入这个模块,那么这个模块应该是一个共享模块(在共享目录中)。

如果一个模块导出了一些声明(组件、指令和管道)并且只有根模块会导入这个模块,那么这个模块应该是一个核心模块(在核心目录中)。

功能模块是否相同?只有根模块导入它们。在 this 示例中,有一个 CoreModule 和一个名为 ContactModule 的功能模块。我看不出它们之间的区别。它们都在根模块中导入。

核心

核心模块包含全局服务的提供者,可以防止从延迟加载模块加载(如您的 link 所示),因为这很容易导致延迟加载模块获得自己的实例的错误全球服务(违背本意)。

特征 顾名思义 - 一个模块一个功能

Otherwise, a feature module is distinguished primarily by its intent.

功能模块提供一组专注于应用程序业务领域、用户工作流、设施(表单、http、路由)或相关实用程序集合的内聚功能。

共享

这主要是为了方便导出多个模块,以便它们可以在想要全部使用它们的组件中立即可用(您可能希望在许多其他模块中一起使用的公共管道、组件和指令) .