Angular之组件生命周期

Posted by Shen Chaoran on January 12, 2018

#

组件从一个路由器路由进去开始创建,当路由器路由出去时销毁。

  • OnChanges:每次输入数据发生变化时调用,首次调用在 onInit 前面
  • OnInit:第一轮 onChanges 之后
  • DoChecked:每个变化检测周期中调用
  • AfterContentInit:内容投影结束后调用
  • AfterContentChecked:每当被投影组件变化检测之后调用
  • AfterViewInit:初始化玩组件及其子组件后调用
  • AfterViewChecked:每当组件完成变化检测后调用
  • OnDestroy:销毁组件、指令时调用

bug集锦

  • 生命周期钩子只能用在组件指令服务

依赖DOM节点的库

比如openlayers等,要在DOM节点上创建。而如果DOM节点不存在就会创建失败。 Angular中如果使用了ngIf结构型指令来控制DOM的结构时,就不能直接把创建Map的代码放在AfterViewInit里了。因为ngIf如果为false,DOM就不存在。