Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/389.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
Javascript 虚拟DOM是否仅在需要重新呈现整个DOM树时使用?_Javascript_Dom_Reactjs - Fatal编程技术网

Javascript 虚拟DOM是否仅在需要重新呈现整个DOM树时使用?

Javascript 虚拟DOM是否仅在需要重新呈现整个DOM树时使用?,javascript,dom,reactjs,Javascript,Dom,Reactjs,我试图理解何时使用虚拟DOM概念,何时不使用。在阅读了下面的答案之后,我有了这样一个印象:只有当我们想要刷新整个DOM树时,才会使用虚拟DOM。这是真的吗 因为以下面的代码段-: <html> <body> <div id="a">Hello</div> </body> </html> 这反映了典型的AJAX场景,其中只刷新了部分页面。在这种情况下,虚拟DOM将如何帮助我?无论如何,我的目标是一个特定的元素或一组元素,那么

我试图理解何时使用虚拟DOM概念,何时不使用。在阅读了下面的答案之后,我有了这样一个印象:只有当我们想要刷新整个DOM树时,才会使用虚拟DOM。这是真的吗

因为以下面的代码段-:

<html>
<body>
<div id="a">Hello</div>
</body>
</html>

这反映了典型的AJAX场景,其中只刷新了部分页面。在这种情况下,虚拟DOM将如何帮助我?无论如何,我的目标是一个特定的元素或一组元素,那么,无论我使用的是虚拟DOM还是真实DOM,这有什么区别呢

如果您使用document.body.innerHTML='World',那么虚拟DOM将对您有所帮助,因为它可能会发现实际的DOM只需要更新一个。@Bergi,所以如果我小心的话,我实际上可以通过不使用虚拟DOM而不是使用虚拟DOM来获得更好的性能,对吗?因为在我上面给出的示例中,额外的时间将被浪费在找出要替换的内容上。是的,通过手动关注所有内容,您总是可以获得更好的性能:-但是,总是深入细节会使您的代码不可理解,使用像虚拟dom这样的库来完成这项工作,可以让您编写更多声明性和正确工作的代码,因为库将单独进行测试;不需要html解析器,甚至不需要document.getElementByIda.firstChild.value=World;甚至重用文本节点。
document.getElementById("a").innerHTML = World;