根据我对this article的理解,(如果我错了,请纠正我)使用$ watch的Angular双向绑定模型等效于Knockout的计算可观察值。
根据KnockoutJS文档,pure computed observables可以防止内存泄漏并减少CPU开销。 AngularJS是否具有等效功能?
我不是很精通Knockout或Angular,但都使用了很短的时间。现在,假设我有一个使用KnockbackJS的现有应用程序,我想移至AngularJS。现在,我已经涵盖了诸如路由和模板之类的内容,但是对于使用purecompute的所有实例我该怎么办?
最佳答案
AngularJS 1.x和KnockoutJS相似,但有很大不同。关于您的问题,它们实际上有很大的不同:Angular使用摘要循环进行更改检测,其中KnockoutJS在后台使用了基于订阅的方法。
是的,Angular中的手表看起来很像来自KnockoutJS的手表,因为它们使您可以执行手动的“订阅”,并在每个摘要周期中进行检查。
这也是比较苹果和橙子开始失去其效力的地方。 computed
和pureComputed
之间的区别是KnockoutJS的技术细节。 AFAIK在AngularJS中没有直接等效的表,或者您可能会说手表是等效表。
最有可能您遇到了XY问题,您知道如何在KnockoutJS中求解X:带有computes和pureComputeds。不要尝试将Y转换为AngularJS,而是尝试将X转换为您的新情况,并找到一种惯用的方法来使用AngularJS解决该问题。