首页 > 试题广场 >

说一下什么是virtual dom

[问答题]

虚拟 dom 是相对于浏览器所渲染出来的真实 dom 的,在react,vue等技术出现之前,我们要改变页面展示的内容只能通过遍历查询 dom 树的方式找到需要修改的 dom 然后修改样式行为或者结构,来达到更新 ui 的目的。

这种方式相当消耗计算资源,因为每次查询 dom 几乎都需要遍历整颗 dom 树,如果建立一个与 dom 树对应的虚拟 dom 对象( js 对象),以对象嵌套的方式来表示 dom 树,那么每次 dom 的更改就变成了 js 对象的属性的更改,这样一来就能查找 js 对象的属性变化要比查询 dom 树的性能开销小。

编辑于 2021-03-07 18:51:19 回复(0)
虚拟dom就是根据dom生成的一颗虚拟的dom树。先模拟一颗虚拟的dom树,当有节点元素发生改变时,虚拟dom会先跟着变。然后拿虚拟dom和dom树做对比,再把变化了的dom渲染道页面。
发表于 2021-03-23 11:03:47 回复(0)
用Js对象结构表示dom树的结构,然后用这个树构建真正的dom树,插到文档中。当状态变更时,重新构造一棵对象树,新旧树对比,记录差异,把记录的差异更新到真正的dom'树中。虚拟dom树就是再js和dom之间充当缓存从作用
发表于 2020-07-23 12:20:57 回复(0)
用js对象结构表示dom树的结构,然后用这个树构建真正的dom树,插到文档当中。当状态变更时,重新构造一棵对象树,新旧树对比,记录差异,把记录的差异应用到真正的dom树上。virtual dom就是在js和dom之间充当缓存的作用
编辑于 2020-03-12 23:00:47 回复(0)