组件到底什么时候被销毁?

When exactly is component destroyed?

在 Angular 2 中使用提前 (AOT) 编译,我有一个父组件和一个子组件,如下所示:

<div>
    <h1>I am a parent</h1>
    <myChild *ngIf="showChild"></myChild>
</div>

我知道子模板是动态插入到DOM的。

如果 showChild 被评估为 false,Angular 到底什么时候销毁子组件?或者 Angular 会完全破坏子组件吗?那是Angular调用onDestroy()方法的时候吗?

当 Angular 运行更改检测并更新绑定到 NgIf 指令的 ngIf 输入时,NgIf 从 DOM.从 DOM 中删除组件后,将调用 ngDestroy(),然后组件可以自由地进行垃圾收集。

如果在*ngIf表达式为真时删除父组件,则父子组件将一起销毁。不过我不知道 ngDestroy() 首先叫什么。