angular 指令(Directive)组件(Component)的关系:
- Component 继承(extends) Directive
- (组价) Component 是 (指令)Directive 的组成部分
1 | export interface Directive { |
指令与组件共有的钩子
- ngOnChanges // 当数据绑定输入属性的值发生变化时调用 (1)
- ngOnInit // 在第一次 ngChanges 后调用 (2)
- ngDoCheck // 自定义的方法,用于检测和处理值的改变 (3)
- ngOnDestory // 指令销毁前调用 (8)
组件特有的钩子
- ngAfterContentInit // 在组件内容初始化之后调用 (4)
- ngAfterContentChecked // 组价每次检查内容时调用 (5)
- ngAfterViewInit // 组件相应的视图初始化之后调用 (6)
- ngAfterViewChecked // 组件每次检查视图时调用 (7)
constructor 构造函数
组件的生命周期函数会在所有生命周期钩子调用之前调用, 一般初始化数据,或者依赖注入用.
ngOnChanges
当数据绑定输入属性的值发生改变时,Angular会主动调用ngOnChanges方法, 他会获得一个SimpleChanges对象,
包含绑定的旧值新值,用于检测组件的输入属性的变化.
ngOnInit(只会被调用一次)
在ngOnChanges执行之后,会调用ngOnInit, 执行组件的其他操作或获取组件输入属性的值。
1 | import { Component, OnInit } from '@angular/core'; |
ngOnDestory
在指令被销毁前调用,用于清理操作,比如: 清理定时器,移除事件监听、退订Observable等
ngDoCheck
在组件的输入属性发生变化时触发,自定义我们的检测逻辑。它也可以用来加速我们变化检测的速度
ngAfterContenInit
在组件使用 ng-content 指令的情况下,Angular 会在将外部内容放到视图后用
它主要用于获取通过 @ContentChild 或 @ContentChildren 属性装饰器查询的内容视图元素
ngAfterContentChecked
在组件使用 ng-content 指令的情况下,Angular 会在检测到外部内容的绑定或者每次变化的时候调用
ngAfterViewInit
在组件相应的视图初始化之后调用,它主要用于获取通过 @ViewChild 或 @ViewChildren 属性装饰器查询的视图元素
ngAfterViewChecked
组件每次检查视图时调用