首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >角:它是否等同于反应‘s的“和解”?

角:它是否等同于反应‘s的“和解”?
EN

Stack Overflow用户
提问于 2018-10-31 16:00:30
回答 1查看 984关注 0票数 3

在阅读了有关ReactJS和change (而不是AngularJS)变化检测和呈现阶段的文档和几篇文章之后,我来到了一个问题,稍后我将尝试解释这个问题。

正如您在React的文档(这里这里)中可能看到的那样,存在这样的概念(如果您愿意的话),称为“协调”,它基本上是指“Diffing算法”,以及在调用“render”方法和创建React元素树之后执行的过程,并应相应地更新DOM .正如他们在文档中所说的,React实现了一个启发式的O(n)算法,它将新版本的虚拟DOM (VDOM)与前一个版本进行比较,以便只有效地更新那些真正改变了的视图部分。

但是说到角,正如我在这里这里这里等一些文章中所读过的,另一方面,它似乎是有角度的,只看它从模板中派生出来的“绑定”:

当编译器分析模板时,它会识别与DOM元素关联的组件的属性。对于每个这样的关联,编译器以指令的形式创建绑定。绑定是角度变化检测的核心部分。

然后:

一旦创建绑定,角将不再与模板一起工作。变更检测机制执行处理绑定的指令。这些说明的任务是检查带有组件属性的表达式的值是否已更改,并在必要时执行DOM更新。

因此,结束它:

处理执行脏检查和更新DOM相关部分的绑定是角度变化检测的核心操作。

(从第三个链接)

因此,我的问题是,我们是否可以说,当角只在“绑定”而不是整个新生成的模板/VDOM上运行更改检测时,就能实现与React类似的性能提升,从而消除了优化的衍射算法的需要?

或者在角度变化检测中还有其他的点来实现这种效率?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-01 06:59:28

我们能不能说角可以达到类似的性能提升。从而消除了优化差分算法的需要。

实际上,没有多少优化在反应中进行。它简单地比较了返回子元素的类型,并丢弃了树。与键的比较涉及更多的it。我想说的是,角运行变化检测速度更快,因为所有的子程序在编译时都是已知的,但是由于每次都可以返回一个全新的子程序,所以它的反应更加灵活。从角度上讲,需要了解大量的概念才能动态地更改或删除子元素。在React中,这只是返回与render方法不同的子元素的问题。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53087567

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档