我花了很多时间来了解是否在我的表单上始终使用两种方式的databind(ng-model)而不是一种方式的databind会导致性能下降.
我知道,通过每两种方式databind的angular 1会创建一个新手表,而在angular 1的大量应用中我们会遇到性能问题,因为这样.现在我需要知道,如果我仅使用一种方式进行数据绑定,那么在使用angular 2时是否确实会有所不同?
不必要时需要避免两种方式的databind?
解决方法:
Angular2实际上并没有双向数据绑定.
Angular2有
父母与孩子之间的数据绑定
[childProp]="parentProp"
当更改检测在parentProp中检测到更改时,它将更新childProp并在子组件中调用ngOnChanges()(实现时).
并将事件从子级绑定到父级
从孩子到父母的方式是事件绑定.
(childPropChange)="parentProp = $event"
在子组件中调用eventFromChild.emit(someValue)时,调用“ someActionOnParent()”.
两者的结合只是上面显示的数据和事件绑定的语法糖
[(childProp)]="parentProp"
这意味着更改检测仅需检查parentProp是否更改,而无需关心另一个方向.从子级到父级的更新必须由子级组件主动调用,并且不涉及更改检测.
这种单向数据流使Angular2的更改检测非常高效.要进一步优化变更检测,请在组件中使用ChangeDetectionStrategy.OnPush.这允许修剪Angular2必须实际执行更改检测的树.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。