虚拟dom
2025年3月12日小于 1 分钟
虚拟dom
虚拟DOM是对一层真实DOM的抽象,以js对象作为基础的树,用对象的属性来描述节点,最终可以通过一系列操作使这棵树映射到真实环境上。
在js对象中,虚拟DOM表现为一个Object对象。并且至少包含签名(tag)、属性(attrs)和子元素对象(children)
为什么需要
DOM是很慢的,页面的性能问题,大部分是由DOM操作引起的。
一次操作时,需要更新10个dom节点,浏览器会依次执行10次更新操作。
而通过vnode,同样的更新10个dom节点,虚拟dom不会立即操作dom,而是将这10次更新内容保存在本地的一个js对象中,最终将这个js对象一次性attach到dom树上,避免大量的无谓计算。