我读了很多有关virualdom的信息。所有文章都解释了虚拟词如何计算变化,然后在有效的步骤中更改真实的DOM。但是他们不解释如何将元素绘制在realdom中?他们使用官方API?('document.createelement',附录等...(?
所以他们说realdom很慢,如果您在realdom中更改某些东西,他会重新渲染整个DOM。
所以:
简单的html标记:
<ul class="list">
<li>1</li>
<li>2</li>
<li>3</li>
<ul>
简单脚本:
const li = document.createElement('li');
document.querySelector('.list').appendChild(li);
问题:
1(此操作将重新绘制整个DOM?
2(在这个简单的操作中,如何更快地反应?
3(反应后,计算了虚拟集与realdom的反应涂料在realdom上的反应涂料如何?反应使用浏览器API?还是他们有其他方式?
谢谢!:(
虚拟dom(vuejs,reactJ和其他(只是DOM的抽象水平。这意味着,虚拟DOM中的基本操作总是比DOM慢。但是虚拟DOM和组件方法有助于在大型水疗应用程序中有效地管理DOM树。基本上,虚拟DOM允许您最小化重新划分并重新绘制DOM树的需求。
回答您的问题:
1(否
2(否
3(是的,reactjs使用dom,例如,这是源代码:
https://github.com/facebook/react/blob/master/packages/react-dom/src/client/reactdomfibercomponent.js#l379
和
https://github.com/facebook/react/blob/master/packages/react-dom/src/client/setinnerhtml.js#l38