序言极尽倾注,深陷其中,界限分明。前端是一小块鸡。分享的文章纯属个人观点。如果有不准确的地方或者需要讨论的地方,欢迎大家评论交流,和同学一起学习~欢迎关注“前端进阶”步圈’公众号,一起探索学习前端技术。..公众号回复加群或扫码,即可加入前端交流学习群,长期交流学习...公众号回复加好友可以加为好友面试热点问题:关于VirtualDOM的问题?什么是虚拟DOM?VDOM是到真实DOM的映射。它本身就是一个JS对象,包括标签名(tag)、属性(attrs)和子元素(children)。VDOM是如何修改真实DOM的?VDOM是一个具有真实DOM的JS对象。如果改变了一个元素的状态,会先在VDOM上改变,而不是直接操作真实的DOM。当有新的修改发生时,会将新的VDOM与旧的VDOMCompare进行比较,得到差异,然后将差异映射到真实DOM中,达到修改真实DOM的效果。VDOM是如何生成的?如何成为真正的DOM?在vue中,被模板编译器编译成渲染函数(render),在挂载(mount)过程中调用渲染函数(render),此时返回的对象为VDOM。但是这不是真正的DOM,需要通过patchVnode()方法转换成真正的DOM。为什么在Vue中使用VDOM?为了解耦HTML依赖,不再依赖HTML编译器进行模板编译VDOM减少了不必要的重绘和回流,解决了View和Status的同步问题,跟踪了VDOM的变化,提高了项目的可维护性。VDM对渲染过程进行抽象,提高组件的抽象能力,可以跨平台:SSR、Weex、diff算法中的同构渲染VDOM?主要实现方式是:递归+双指针在前端,DOM元素的跨层级移动非常少,所以VDOM只比较同层级的元素,只用深度优先遍历的方式记录差异.VDOM的作用是什么?维护View和Status的状态可以提高复杂情况下的渲染性能。跨平台(CrossPlatform)浏览器端渲染DOM服务器端渲染SSR:Nuxt.js、Next.js原生应用:Weex、React原生小程序:mpvue、uni-appVDOM的优势?有效减少真实DOM操作次数,提升性能VDOM不会造成回流和重绘方便跨平台的VDOM缺点?无法执行极端优化。第一次渲染大量DOM时,多了一层VDOM计算。关于VDOM库?Snabbdomvue2中使用的VDOM是改造后的,Sanbbdom可以通过模块进行开发。使用TypeScript开发最快的virtual-dom虚拟dom文章之一。特殊字符描述:QuestionmarkedQ(问题)AnswermarkedR(result)NotesStandard:A:(attentionmatters)detaileddescriptionannotation:D:(detailinfo)summaryannotation:S:(summary)analysisannotation:Ana:(analysis)提示注解:T:(tips)往期回顾:热门面试题:过程系列题?热门面试题:Node.js中的垃圾回收?面试热点问题:http3.0~http1.0有哪些改进?JavaScript中的AMD和CMD规范Vue数据监控Object.definedProperty()方法的实现最后:欢迎来到“前端进阶圈”探索和学习前端技术...公众号回复加群或扫码,可以加入前端交流学习群,长期交流学习...公众号回复加好友,可以加为好友
