目前主流的前端框架React和Vue中都用到了Virtual DOM这个技术,而Virtual DOM究竟是什么,可能不少人和我同样,概念上仍是模糊。
本文主要介绍DOM和Virtual DOM的基本概念及我的理解。html
如下的DOM均指HTML DOM.另外前端菜鸟一枚,写文章主要是为了想加深理解知识,若有不对的地方恳请大佬们指点,轻喷.前端
document.getElementById('text').innerHTML='newtext' //经过DOM修改HTML文本
getElementById
就是HTML DOM API的方法react
<!DOCTYPE html> <html> <head> <title>mylist</title> </head> <body> <ul> <li>list1</li> <li>list2</li> </ul> </body> </html>
如上html能够用下面的DOM树表示:web
例如removeChild()
、appendChild()
这样的方法去修改DOM树编程
首先,虚拟DOM不是由React发明的,可是React使用它并免费提供它。
虚拟DOM是HTML DOM的抽象。 它是轻量级的,与特定于浏览器的实现细节分离。 因为DOM自己已是抽象,所以虚拟DOM其实是抽象的抽象。
从另外一方面来讲,也许能够将虚拟DOM视为React的HTML DOM的本地和简化版。 它容许React在这个抽象的世界中进行计算,并跳过“真正的”那些缓慢的DOM操做。