vue为什么使用虚拟DOM
文章类型:Vue
发布者:admin
发布时间:2023-02-22
浏览器渲染引擎工作流程:创建DOM-->创建stypeRules-->创建Render树-->布局Layout-->绘制Painting
1:使用HTML解析器(调用XML解析器)解析HTML文档,将各个HTML元素逐个转化成DOM节点,构建DOM树
2:CSS的解析,分析css文件和元素上的样式,转化为CSS对象,将这些CSS对象组装起来,生成页面样式表
3:将DOM树和样式表关联起来,构建Render树(每个DOM节点都有attach方法,接受样式信息,返回一个render对象)
4:浏览器开始布局,转化为像素,显示出精确坐标
5:坐标和Render都存在,就调用paint进行绘制,构建出界面
操作真是DOM,浏览器会从构建树从头->尾执行一遍,会立即执行改变,如果多次,那么就会不停的重复执行,频繁操作会出现页面卡顿,影响体验
在vue2.0版本中,引入了 Virtual DOM 的概念,其实就是以js对象(VNode节点)作为基础来模拟DOM结构的树形结构,
一:属性
1:标签名(tag)
2:属性(attrs)
3:子元素对象(children)
二:作用
主要是将虚拟节点渲染到视图上,避免不必要的DOM操作,将虚拟节点和上一次渲染的虚拟旧节点对比,避免大量的回流重回操作,找到真正更新的地方,映射成真实的DOM,让浏览器去执行
三:做什么
1:提供和真是DOM节点嗦对应的虚拟节点Vnode
2:将虚拟节点Vnode和旧的虚拟节点oldVnode对比,然后更新视图
四:好处
1:具备跨平台优势,Virtual DOM 是以JavaScript对象为基础而不依赖真实平台环境
2:操作DOM慢,但是js运行速度快,最大程度减少DOM操作,Vritual DOM本质上就是在JS和DOM之间做了一个缓存,JS只操作Virtual DOM,最后把变更写入到真实DOM
3:提高渲染性能,Virtual DOM在大量、频繁的数据能进行合理的更新