3-7 模块的概念



目前我们只有根模块

如果都做在一个模块中,会让你的程序难以维护

模块和模块之间有关系,模块自己本身也有一些属性。
imports是这个模块依赖于其他的模块。例如依赖于其他的第三方的类库是 别人做好的,这里我依赖,所以导入进来。。
export:就是你的模块要给别人暴露什么,别人用你的时候,你给别人提供了什么。比如你有个组件要给别人用,那么就配置在Exports里面去。
Providers:对内,也就是对自己这个模块暴露哪些服务。
Declations:我这个模块里面有哪些组件,要在这里做声明,让我模块之间的组件互相知道彼此,但是如果你是从imports中导入一个别的组件,那个模块提供的一些组件用不着在你自己的模块里面声明它。这里只声明在自己模块内创建的组件,

我们在根模块创建的组件

我们都在根模块中声明了

例如我们赢的ngModel都是另外一个模块提供的指令

我们的模块导入了其他模块。

FormModule里面提供了ngModel指令。你要想使用这个指令,这个指令是其他模块提供的。

我们要把其他模块在Imports数组中,加载进来。否则的话就不能用了。

这个formModule对外输出了NgModel这个命令 ,所以我们你才能去使用它,它在它的module放在了Exports 。然后我们在自己的模块Import进来,就可以使用了。 

bootstrap表示根模块。表示的启动的入口组件是什么。只有根模块才会有这个东西。

BrowserModule是一个特殊的模块,在根模块需要依赖BrowserModule,在其他模块是不需要的。


而且这个BrowerModule最主要的目的是Export了CommonModule和ApplicationModule这两个
ApplicationModule是整个应用的模块,为什么根模块需要它就是因为这里导出了。 ApplicationModule负责引导、初始化一些东西。
所以根模块需要依赖BrowserModule。
CommonMudule是其他模块都需要的,所以根模块不需要再单独导入CommonMudule,

CommonMudule里面提供了很多的指令。BrowerModule顺便把CommonMudule导出了一次。


Exports主要是用于模块之间的关系。Imporst决定了我们的模块依赖哪些模块。Imporst里面指定是模块,只是导第三方的模块。导入它的同时,里面包含的组件就可以用了。
Exports里面可以是模块,也可以是指令,
Providers后面讲依赖注入的时候会细讲,提供了一些服务,可注入的东西。
Declarations:内部的,只能包含组件和指令和管道。 而且只是负责自己的模块的。就是说我自己模块内部,让大家相互认识。我要在这里进行声明。
都是我自己的,跟第三方无关

回顾


 

结束



 

posted @ 2020-08-14 13:11  高山-景行  阅读(208)  评论(0编辑  收藏  举报