0

在此示例 中https://stackblitz.com/edit/angular-ivy-hptdnu?file=src%2Fapp%2Fgrid%2Fgrid.component.html 没有 trackBy 触发了 ngOnDestroy 挂钩并更新了数据我可以理解

但在这个其他示例中 https://stackblitz.com/edit/angular-ivy-aan45e?file=src%2Fapp%2Fgrid%2Fgrid.component.html 与 trackBy ngOnDestroy 钩子永远不会触发并且数据更新没有任何问题但我真的不明白为什么!我的意思是,如果没有销毁触发,则行组件不应该在 @Input 上没有设置器的情况下更新

你能解释一下,我想念什么吗?

4

1 回答 1

2

当您了解trackBy其用途时(例如https://netbasal.com/angular-2-improve-performance-with-trackby-cc147b5104e5),您的问题的答案变得显而易见:使用trackBy您告诉 angular 不要破坏和重新创建ngFor迭代元素,但重用它们。所以ngOnDestroy不会被触发,因为组件永远不会被破坏,而是与新的输入一起重用。

于 2021-06-19T18:41:58.590 回答