angular - 为什么 markForCheck() 只适用于一个分支?

标签 angular angular-di

很明显,我们主要需要使用 ma​​rkForCheck() 和 OnPush 策略来标记组件进行 CD 检查,但是

我想弄清楚为什么只检查一个分支:

enter image description here

为什么可以为整个应用或仅特定组件运行 CD,不是吗?

最佳答案

感谢@yurzui @Toxicable @Maximus 的评论,我开始理解:

为什么不在每个组件上?

这就是关于 onPush 策略优化的想法:仅在必要时运行它。

为什么是整个分支,而不是只有一个组件?

因为它是制作 CD 的方式 - 它总是从根组件向下。因此,如果您想在特定组件上运行 CD,您需要创建从根目录到该特定组件的所有路径

关于angular - 为什么 markForCheck() 只适用于一个分支?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45403853/

相关文章:

Angular 4 DI : wait for method completion

angular - 如何更新依赖注入(inject) token 值

javascript - 如何在到期前知道日期

typescript - Angular 2 typescript Unicode(阿拉伯语)文本支持

angular - 提供了重复的列名 : Angular Material Data Table

Angular 应用程序显示 cors 问题并且未重定向到 azure 广告登录页面

angular - NgRx router-store 在离开当前页面时发出路由参数更改

angular - "this.appInits[i]"不是函数