我已经阅读过Angular 2中单向数据流的概念,但我仍然不清楚几件事:
如果在组件中检测到更改,是否会将检测运行从应用程序根组件更改为所有组件,或仅从检测到更改的组件更改为其子组件?
假设事件已从某个组件发送到其父组件,并导致其中一个父组件属性发生更改。因此,运行更改检测周期。最近更改的父属性可能会触发子组件的更改,从而触发另一个更改检测,依此类推。所以基本上我们不是陷入类似于anguar 1.x遭受的循环变化检测问题的陷阱?
感谢。
答案 0 :(得分:0)
是的,除了使用ChangeDetectionStrategy.OnPush
选择退出(并且没有更改输入值)或ChangeDetectorRef.detach()
在开发模式下,Angular会抛出异常。 (表达式自检查后已发生变化)