编程语言
首页 > 编程语言> > javascript-angular 2不需要时是否需要避免两种方式的databind?

javascript-angular 2不需要时是否需要避免两种方式的databind?

作者:互联网

我花了很多时间来了解是否在我的表单上始终使用两种方式的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必须实际执行更改检测的树.

标签:angular,data-binding,angular2-forms,javascript
来源: https://codeday.me/bug/20191118/2026217.html