Angular单向数据流
参考文档:https://angular.cn/guide/glossary#unidirectional-data-flow
一种数据流模型,它总是在一个方向(从父到子)上检查组件树是否有变化,以防止在变更检测图中出现循环。
在实践中,这意味着Angular中的数据会在变更检测过程中向下流动。父组件可以很容易地改变子组件中的值,因为父组件是先检查的。但是,如果子组件在更改检测期间(反转预期的数据流)尝试更改其父组件中的值,则可能会导致错误,因为父组件已经渲染过了。在开发模式下,如果你的应用尝试这样做,Angular会抛出ExpressionChangedAfterItHasBeenCheckedError错误,而不是沉默低渲染新值。
为了避免这个错误,进行此类更改的生命周期钩子方法中就要出发一次新的变更检测。这次新的变更检测与之前那次的方向一样,但可以成功获得新值。