
文章图片

虚拟 DOM 更新其实效率并不像大家想象中的那么高 , 而且 React 官方也从来没说过虚拟 DOM 效率有多高 , 相反React 虚拟 DOM 的实现也不是所有虚拟 DOM 产品中最好的 。
但是通过虚拟DOM的抽象能力 , 我们拥有了声明式写UI的能力 , 大大提高了我们的[工作效率」 , 具体是为什么这要讲到VDOM和真实DOM的相似度来说了 。
【javascript|Vue采用虚拟DOM的目的是什么?】一、VDOM和真实DOM的相似度
HTML tag 书写方式和 json 的书写方式是差不多的:他们都是树形结构 。
DOM是一个树形结构 , 这个树形结构对应的就是我们的HTML tag书写HTML其实并不是很费脑 , 因为一切都抽象成了一个人能够看懂的Tag层级之间的关系就好像画图一样 。 如果我们使用javascript api 去书写 HTML tag 是非常痛苦的 , 所以开发人员就瞄上了和HTML tag 有相似结构的json数据格式 。 因为json又是javascript的原生对象 , 所以就让[在javascript中声明式书写html 带来了可能
但是能够书写html远远已经不能满足我们现代工业的需求 , 我们需要一种机制:
1、能够声明式地书写html
2、能够在javascript 中书写 html
3、能够小粒度地复用我们的这些\"html\"
那么 , 通过babel转化的jsx就应运而生了 , 让人们拥有了使用js写html并且声明式又可以控制粒度的复用
二、Vue采用虚拟DOM的目的
上面那堆话说的是虚拟DOM的作用 , 那么Vue引入虚拟DOM的目的就很容易理解了:
1. Vue 2.0引入 vdom 的主要原因是 vdom 把渲染过程抽象化了 , 从而使得组件的抽象能力也得到提升 , 并且可以适配DOM以外的渲染目标 。
2.不再依赖HTML解析器进行模板解析 , 可以进行更多的AOT工作提高运行时效率:通过模板AOT编译 , Vue的运行时体积可以进一步压缩 , 运行时效率可以进一步提升.
3.可以渲染到DOM以外的平台 , 实现SSR、同构温染这些高级特性 , Weex等框架应用的就是这一特性 。
三、对虚拟DOM的理解
很多人喜欢把数据的更新和虚拟 DOM 进行强行绑定 , 实际上数据是否更新更快 虚拟 DOM 关系真的不大 。
虚拟DOM只有在HTML tag(或者是VDOM的node type)剧烈变化的时候才会体现他的好处:局部替换HTML tag(替换vnode) 。 任你数据再怎么变都好 , 其实DOM本身根本不懂你数据是否变化 。 因此 , 明白这些以后 , 应该就能明白 , 虚拟DOM引入最大的好处就是:
1.组件的高度抽象化
2.可以更好的实现SSR同构渲染等
3.框架跨平台TG
- gen.g战队|骁龙8Gen2发布时间提前至11月,采用全新架构,改动较大
- javascript|穿戴设备将迎变革,OPPO又增新专利,能提升模式切换效率!
- 一、前言:采用Zen3+架构的6000系移动端处理器带来多核性能提升AMDZen3架构的...|A4纸大的锐龙6000轻薄本有多强!华硕灵耀X 13评测
- 华为荣耀|荣耀magic5传来消息,首次采用1TB大内存,价格却有些出乎意料
- 凯迪拉克|全新凯迪拉克Celestiq内饰设计曝光,零配件采用3D打印技术打造!
- 索尼|采用Mini LED屏幕,索尼XR-65X95EK电视登场,16999元值不值?
- 华为鸿蒙系统|麒麟新U+鸿蒙3.0,又一款华为新机采用星环设计
- 红杉资本|广州蓝景技术分享—开发语言JavaScript之多线程
- 6月23日消息|红旗ls7全新车型申报图曝光采用双色车身设计
- iPhone|确定了!iPhone 将采用 Type-C 接口
