使用ngDoCheck的费用是多少?

时间:2018-10-25 02:03:10

标签: angular model lifecycle

我正在将模型参考从父组件注入子组件。当该模型引用的属性更改时,我需要更新子组件的视图。

这不能使用ngOnChanges完成,因为未更改对模型的引用。这是设计使然,并在Angular文档中提到。

建议的替代方法是使用ngDoCheck。这将允许我查看模型引用的任何属性是否已更改,并相应地调用函数。但是,Angular文档提到,由于调用此生命周期挂钩的频率很高,因此这样做的成本很高。

现在,子组件已通过更新 all 的服务订阅了可观察对象  我的模型参考。当服务更新模型时,它会通知订阅者该更新他们的视图了。

这里的问题是,如果我至少有两个具有不同模型引用的子组件。在当前设计中,每次更新任何模型时,所有子组件都会更新其视图。

这似乎很浪费,但是我不确定利用ngDoCheck是否会更好。

我应该使用ngDoCheck来单独更新子组件,还是应该坚持使用可观察到的模型来强制在更新任何模型时更新所有子组件?

如果是前者,那么ngDoCheck有哪些好的文档?互联网似乎令人惊讶地缺少有关此生命周期挂钩的信息。

0 个答案:

没有答案