与Angularjs 1.X中的$ watch相比,rxjs observable的表现如何?

pch*_*tre 18 reactive-programming observable rxjs angularjs

我从各种演讲者那里听说,$ watch对于你的应用程序的性能是多么危险.我想知道是否有人在AngularJS应用程序中比较了Rxjs的Observable与$ watch的性能.我知道Observables将成为Angular 2的一部分.

art*_*iak 23

观察变化的两种机制本质上是不同的.

$watch是一种蛮力,基于拉力的机制.观察者活跃的地方(通常)需要在发生任何变化后访问每个观察到的对象/表达.当然观察整个过程越慢越多.

Observable实现基于推送的机制.观察者是被动的,并在发生变化时得到通知.正确实施它可以更加智能地传播变化.


据我所知,Observable在角度2.0中使用s是可选的,但建议.此外,角度2.0将实现类似于通量的单向数据流.数据更改仅在DOM中向下传播 - 组件可以直接观察/依赖其祖先的数据,但不能直接观察/依赖其后代.在更改之后,可以保证只有一些DOM子树需要更新.在大多数情况下,这个子树将比整个DOM小得多.

一个很棒的视频来自2015 ng-conf基准角度1.x,react和angular 2.0.(不确定它是否使用Observables)


最后一件事Observable:它提供了比上述描述更多的方式,它是处理异步事件的好方法.