在角2 +中,NGDOCHECK和NGReVIEW检查似乎执行相同的功能。
ngDoCheck在触发更改检测时调用。现在,此更改检测将随着视图中的更改而触发。根据文档,视图更改时调用ngAfterViewChecked
当一个足够时,这里需要两个生命周期挂钩是什么?

最佳答案

DoCheck挂钩允许您集成到更改检测循环中,并在对象引用或任何角度未自动检测更改的区域中查找更改。界面如下:

interface DoCheck {
    ngDoCheck(): void;
}

根据组件树的大小和复杂度,ngDoCheck方法将执行大量的时间,并且如果您不执行代码,可能会成为性能瓶颈。除非有必要,否则不要使用ngDoCheck方法。
当使用对象类型的属性时,angular将通过值引用监视更改,这意味着它检测整个值的更改,而不是子属性的更改。在这种情况下,我们将使用DoCheck生命周期挂钩并检测对象中的更改。
ngAfterViewChecked方法表示生命周期钩子和接口。它允许您提供自定义更改跟踪,由于某些原因,它不会被角度处理。该行为类似于aftercontentchecked挂钩,但适用于视图模板子项,而不是投影内容。
interface AfterViewChecked {
    ngAfterViewChecked(): void;
}

DOOCHECK主要用于您的业务逻辑更改,这些更改不会被上述情况下的角度检测到。AfterViewChecked用于视图跟踪。
希望能有帮助!!!!

10-06 02:51