大家学习前端,应该都知道什么是dom,那虚拟dom是什么呢?我朋友最近面试前端就被问到了“什么是虚拟dom,虚拟dom有什么作用?”这道题,所以趁此机会也想详细说一下虚拟dom以及虚拟dom的作用。
虚拟dom是相对于浏览器所渲染出来的真实dom的,在react、vue等技术出现之前,我们要改变页面展示的内容只能通过遍历查询dom树的方式找到需要修改的dom,然后修改样式行为或者结构,来达到更新ui的目的。
这种方式相当于消耗计算资源,因为每次查询dom几乎都要遍历整颗dom树,如果建立一个与dom树对应的虚拟dom对象(js对象),以对象嵌套的方式来表示dom树,那么每次dom的更改就变成了js对象属性的更改,这样一来就能查找js对象的属性变化要比查询dom树的性能开销小。