Christian-health / StudyNote2017

2017年学习笔记
0 stars 0 forks source link

angular学习笔记 #32

Open Christian-health opened 6 years ago

Christian-health commented 6 years ago

模块

(1)只能在根模块AppModule中导入BrowserModule。在其它任何模块中都不要导入BrowserModule。 特性模块和惰性加载模块应该改成导入CommonModule。
(2)如果你在惰性加载模块中导入BrowserModule,Angular就会抛出一个错误。
(3)Angular不允许模块之间出现循环依赖,所以不要让模块'A'导入模块'B',而模块'B'又导入模块'A'。
(4)你可以导出任何可声明类(组件、指令和管道),而不用管它是声明在当前模块中还是某个导入的模块中。你可以重新导出整个导入过的模块,这将导致重新导出它们导出的所有类。模块甚至还可以导出它未曾导入过的模块。
(5)列在引导模块的@NgModule.providers中的服务提供商具有全应用级作用域。 往NgModule.providers中添加服务提供商将导致该服务被发布到整个应用中。当我们导入一个模块时,Angular就会把该模块的服务提供商(也就是它的providers列表中的内容)加入该应用的根注入器中。
(6)Angular会把@NgModule.providers中的提供商添加到应用的根注入器中…… 除非该模块是惰性加载的,这种情况下,它会创建一子注入器,并且把该模块的提供商添加到这个子注入器中。
(7) 引导组件和路由组件都是入口组件
(8)SharedModule不应该带有providers,原因在前面解释过了。 它的导入或重新导出的模块中也不应该有providers。 如果你要违背这条指导原则,请务必想清楚你在做什么,并要有充分的理由。

Christian-health commented 6 years ago

组件样式

https://www.angular.cn/guide/component-styles

link

style

host-active

require

encapsulation: ViewEncapsulation.Native的选项: Native模式:不进不出,没有样式能进来,组件样式出不去 Emulated模式(默认值):只进不出,全局样式能进来,组件样式出不去 None模式:能进能出

ng_host

Christian-health commented 6 years ago

动态组件加载器

https://www.angular.cn/guide/dynamic-component-loader

对选择器的引用 通常,Angular编译器会为模板中所引用的每个组件都生成一个ComponentFactory类。 但是,对于动态加载的组件,模板中不会出现对它们的选择器的引用。

要想确保编译器照常生成工厂类,就要把这些动态加载的组件添加到NgModule的entryComponents数组中.

Christian-health commented 6 years ago

动画