我是Angular的初学者,我自己学习,我陷入了[[ngDoCheck生命周期方法
检测并根据Angular自身无法或无法检测到的更改采取措施。根据文档:
父组件:
user={
name:"xxx"
}
update(){
this.user.name="yyy"
}
父视图:
<button (click)="update">update</button>
<child-comp [inputprop]="user"></child-comp>
子组件
ngDoCheck(){
console.log(this.inputprop);
}
据我所知,使用此生命周期方法获得ngOnChanges无法检测到更深层次的输入属性变化。简单来说,ngOnChanges将仅检测到对属性的引用而检测到属性更改。最新的更深层次的变化
我想知道使用ngDoCheck生命周期方法的确切用例。在上面的示例中,ngDocheck生命周期方法没有做任何事情来获取属性的最新更改。相反,更改检测有助于更深入地获取最新更改。
在onPush策略中,将新对象(引用)传递给@Input装饰属性时,CD会运行。
不管采用何种策略,CD始终在以下情况下运行,
即使CC-121中触发了一个事件,Angular也会从根组件到底部运行CD。但是,运行CD将停止在将策略设置为onPush的节点上,并且您不会在@Input装饰的属性之一中传递新对象。
因此,您现在对CD的运行时间和方式有所了解,每次为组件运行CD时,就会执行ngDoCheck()生命周期。
我希望它会有所帮助。
谢谢