angular - 使用 ngDoCheck 的成本是多少?
问题描述
我将模型引用从父组件注入到子组件。当该模型引用的属性发生更改时,我需要更新子组件的视图。
这不能使用 ngOnChanges 完成,因为对模型的引用没有改变。这是设计使然,在 Angular 文档中有所提及。
建议的替代方法是使用 ngDoCheck。这将允许我查看模型引用的任何属性是否已更改并相应地调用函数。但是,Angular 文档提到,由于调用此生命周期挂钩的频率,这将是昂贵的。
现在,子组件订阅了来自更新我所有 模型引用的服务的 observable。当服务更新模型时,它会通知订阅者是时候更新他们的视图了。
这里的问题是我是否至少有两个具有不同模型引用的子组件。使用当前设计,每次更新任何模型时,所有子组件都会更新其视图。
这似乎很浪费,但我不确定使用 ngDoCheck 是否会更好。
我应该使用 ngDoCheck 单独更新子组件,还是应该坚持使用 observable 来强制所有子组件在更新任何模型时更新?
如果是前者,那么 ngDoCheck 有哪些好的文档?互联网似乎令人惊讶地缺乏关于这个生命周期钩子的信息。
解决方案
推荐阅读
- python - 如何根据 python 中的用户输入打印列表中的某些项目?
- node.js - Nodejs自动登录如果存在cookie记住我
- sql - MS Access SQL 在行数据和列名上复制 Excel vlookup
- java - 活动开始时在底部强制滚动视图
- reactjs - 源代码管理中的 Visual Studio 代码片段
- java - How do you use your interface's private methods?
- javascript - 如何向 Mongoose Schema 添加新密钥?
- python - Python pyautogui.click 是右键单击而不是左键单击
- ios - Swift 4 图像选择器不改变 UIImageView
- javascript - Jquery效果函数调用在javascript中不起作用