Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在考虑DOM操作时,Angular是否比纯JavaScript更快?_Javascript_Angular_Performance - Fatal编程技术网

在考虑DOM操作时,Angular是否比纯JavaScript更快?

在考虑DOM操作时,Angular是否比纯JavaScript更快?,javascript,angular,performance,Javascript,Angular,Performance,这就是我目前所知道的: 在修改DOM时,JavaScriptvanilla每次都直接这样做,因此计算成本很高 我知道React和Vue.js使用虚拟DOM,因此如果不需要,它们不会更新真实的DOM,但是Angular呢。你是怎么做到的 在现实世界的应用程序中,哪个更快真的很重要吗 你是怎么做到的 如前所述,Angular有自己的变化检测策略。长话短说,它对一些特定对象(如浏览器事件、xmlHttpRequest、超时等)进行了修补,以了解何时开始检查并检查所需的值 因此,这是一种混合事件和肮

这就是我目前所知道的:

  • 在修改DOM时,JavaScriptvanilla每次都直接这样做,因此计算成本很高
  • 我知道React和Vue.js使用虚拟DOM,因此如果不需要,它们不会更新真实的DOM,但是Angular呢。你是怎么做到的
在现实世界的应用程序中,哪个更快真的很重要吗

你是怎么做到的


如前所述,Angular有自己的变化检测策略。长话短说,它对一些特定对象(如浏览器事件、xmlHttpRequest、超时等)进行了修补,以了解何时开始检查并检查所需的值

因此,这是一种混合事件和肮脏的检查。如果你想比较一下,试着检查一下

在现实世界的应用程序中,哪个更快真的很重要吗

在现实世界中,一切都取决于需求和情况。你应该从这个问题开始——我想要实现什么?如果你想要灵活性,那就采取行动。如果你想要更稳定的结构和指导方针-采取角度。如果你想妥协,就用Vue吧。如果您需要节省客户端流量,请尝试Hyperapp或类似的smth


老实说,Angular、React和Vue对于大多数应用程序来说都足够快,因此您从一开始就不必担心这一点。

Angular有自己的更改检测功能,与虚拟DOM的原理类似,但功能不同。它避免了根据DOM层次结构进行更新或更具体地检查不需要的更改。至于使用vanilla JavaScript修改DOM,没有什么可以阻止您自己进行更改检测或维护自己的虚拟DOM,无论是您自己还是通过一个类似于。。。所以说React/VUE比vanilla JS快是似是而非的,而虚拟dom在某些情况下可能会慢一些。在现实世界的应用程序中,你应该根据它是否能提高效率来选择一个框架。当您选择的框架开始出现性能问题时,您可以开始确定在何处优化性能。选择不使用框架,因为它可能没有其他东西快,这是愚蠢的差事,除非你从一开始就知道应用程序在每一次交互中都要求尽可能高的性能。在这种情况下,您可能不会在客户端执行任何操作。“Javascript vanilla每次都直接这样做”-当然不会,您不会编写愚蠢的代码。无论您使用什么框架,它都会有一些开销,这些开销可能很小,但不能是负的。加载库文件来操作DOM更好,还是使用纯JavaScript来操作DOM更好?到目前为止,想法不错。我同意大家的看法:)最重要的是,Angular团队仍在努力使应用程序越来越快,@Arun Angular ivy将于今年晚些时候发布,承诺将大幅减小构建尺寸,并可能加快渲染速度。是的,我还听说,随着时间的推移,Angular的性能越来越好,速度也越来越快release@MatthiasL这是否意味着过去情况相当糟糕-P