剖析Angular Component的源码示例(3)

显然,OnPush策略相比Default降低了变化监测的复杂度,很好地提升了变化监测的性能。如果组件的更新只依赖输入属性的值,那么在该组件上使用OnPush策略是一个很好的选择。

encapsulation

ViewEncapsulation.None:无 Shadow DOM,并且也无样式包装。

ViewEncapsulation.Emulated:无 Shadow DOM,但是通过Angular提供的样式包装机制来模拟组件的独立性,使得组件的样式不受外部影响,这是Angular的默认设置。

ViewEncapsulation.Native:使用原生的 Shadow DOM 特性。

生命周期

当Angular使用构造函数新建组件后,就会按下面的顺序在特定时刻调用这些生命周期钩子方法:

生命周期钩子 调用时机
ngOnChanges   在ngOnInit之前调用,或者当组件输入数据(通过@Input装饰器显式指定的那些变量)变化时调用。  
ngOnInit   第一次ngOnChanges之后调用。建议此时获取数据,不要在构造函数中获取。  
ngDoCheck   每次变化监测发生时被调用。  
ngAfterContentInit   使用  
ngAfterContentChecked   ngAfterContentInit后被调用,或者每次变化监测发生时被调用(只适用组件)。  
ngAfterViewInit   创建了组件的视图及其子视图之后被调用(只适用组件)。  
ngAfterViewChecked   ngAfterViewInit,或者每次子组件变化监测时被调用(只适用组件)。  
ngOnDestroy   销毁指令/组件之前触发。此时应将不会被垃圾回收器自动回收的资源(比如已订阅的观察者事件、绑定过的DOM事件、通过setTimeout或setInterval设置过的计时器等等)手动销毁掉。  

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/pxdfx.html