Vue采用虚拟DOM的目的是什么

2019-12-19 22:44:29

泻药很遗憾,React即使通过diff一样是不能精确的知道到底要更新什么鬼东西,因此React引入了一些叫做ShouldComponentUpdate的玩意,这个我已经回答过很多次了,要搞明白这个。我实现过miniReact框架,因此我还算是比较懂,我已经说过很多次了:虚拟DOM的更新其实效率并不像大家想象中的那么高,而且React官方也从来没说过虚拟DOM效率有多高,相反React虚拟DOM的实现也不是所有虚拟DOM产品中最好的。但是通过虚拟DOM的抽象能力,我们拥有了声明式写UI的能力,大大提高了我们的「工作效率」,具体是为什么这要讲到VDOM和真实DOM的相似度来说了。VDOM和真实DOM的相似度HTMLtag书写方式和json的书写方式是差不多的:他们都是树形结构。DOM是一个树形结构,这个树形结构对应的就是我们的HTMLtag,书写HTML其实并不是很费脑,因为一切都抽象成了一个人能够看懂的Tag,层级之间的关系就好像画图一样。如果我们使用javascriptapi去书写HTMLtag是非常痛苦的,所以开发人员就瞄上了和HTMLtag有相似结构的json数据格式。因为json又是javascript的原生对象,所以就让「在javascript中声明式书写html带来了可能」。但是能够书写html远远已经不能满足我们现代工业的需求,我们需要一种机制:能够声明式的书写html能够在javascript中书写html能够小粒度的复用我们的这些"html"那么,通过babel转化的jsx就应运而生了,让人们拥有了使用js写html并且声明式又可以控制粒度的复用Vue采用虚拟DOM的目的上面那堆话说的是虚拟DOM的作用,那么Vue引入虚拟DOM的目的就很容易理解了:Vue2.0引入vdom的主要原因是vdom把渲染过程抽象化了,从而使得组件的抽象能力也得到提升,并且可以适配DOM以外的渲染目标。不再依赖HTML解析器进行模版解析,可以进行更多的AOT工作提高运行时效率:通过模版AOT编译,Vue的运行时体积可以进一步压缩,运行时效率可以进一步提升;可以渲染到DOM以外的平台,实现SSR、同构渲染这些高级特性,Weex等框架应用的就是这一特性。对虚拟DOM的理解很多人喜欢把数据的更新和虚拟DOM进行强行绑定,实际上数据是否更新跟虚拟DOM关系真的不大。虚拟DOM只有在HTMLtag(或者是VDOM的nodetype)剧烈变化的时候才会体现他的好处:局部替换HTMLtag(替换vnode)。任你数据再怎么变都好,其实DOM本身根本不懂你数据是否变化。因此,明白这些以后,应该就能明白,虚拟DOM引入最大的好处就是:组件的高度抽象化可以更好的实现SSR,同构渲染等框架跨平台参考:Vue的理念问题

上一篇:北京科技大学的计算机科学与技术专业怎么样师资力量如何
下一篇:3T移动硬盘是东芝的好还是西部数据的好
设为首页 | 保存到桌面 | 网站地图 | 用户帮助 | 用户注册 | 在线投稿 | 广告投放 | 留言反馈
Copyright © 2005-2012 ™ 165163.com.All Rights Reserved. 东阳在线版权所有
地址:浙江省东阳市画水镇华阳 电话:0579-86220017 013509201192 QQ:393614973 互联网ICP备案编号:浙ICP备10046462号
温馨提示:东阳在线所有帖子仅且代表作者本人意见,均不代表本站立场;如转载请注明出东阳在线(www.165163.com),商业用途请联系本站。

东阳E网 金华公安网监
s