Vue Virtual Dom 和 Diff原理(面试必备) 极简版

  我又来了,这是Vue面试三板斧的最后一招,当然也是极其简单了,先说Virtual Dom,来一句概念:

  用js来模拟DOM中的节点。传说中的虚拟DOM。

  

  再来一张图:

  

  是不是一下子秒懂  没懂再来一张

  

  

  

  Virtual Dom就先这样,理解了就OK,下面我们了解一下Diff,老规矩先来一句概念:

  diff算法就是进行虚拟节点对比,并返回一个patch对象,用来存储两个节点不同的地方,最后用patch记录的消息去局部更新Dom。

   换句人话

  diff的过程就是调用名为patch的函数,比较新旧节点,一边比较一边给真实的DOM打补丁

  

  废话说了很多,上图

  

  多说无益,再来一张图

  

  这个Diff的过程不展开说了,有兴趣的童鞋可以走起,如果还没懂,再走起

  

  敲黑板时间到:

  基本上上面所讲的能理解,差不多Vue Virtual Dom 和 Diff原理你也就懂了,当然更深的还需要自己去看,欢乐时光特别快,又到时候讲拜拜

  

 

原文地址:https://www.cnblogs.com/webcabana/p/11099013.html

时间: 2024-10-05 05:58:40

Vue Virtual Dom 和 Diff原理(面试必备) 极简版的相关文章

Vue数据双向绑定(面试必备) 极简版

我又来吹牛逼了,这次我们简单说一下vue的数据双向绑定,我们这次不背题,而是要你理解这个流程,保证读完就懂,逢人能讲,面试必过,如果没做到,请再来看一遍,走起: 介绍双向数据之前,我们先解释几个名词: 1.setter.getter 答:首先,别误以为他们就是一会要说的get.set, 原文地址:https://www.cnblogs.com/webcabana/p/11077628.html

vue虚拟dom原理

Virual DOM是用JS对象记录一个dom节点的副本,当dom发生更改时候,先用虚拟dom进行diff,算出最小差异,然后再修改真实dom. vue的virtual dom的diff算法是基于snabbdom算法改造而来,与react的diff算法一样仅在同级的vnode间做diff,递归的进行同级vnode的diff,最终实现整个DOM树的更新. 虚拟DOM的缺点: 1. 代码更多,体积更大 2. 内存占用增大 3. 小量的单一的dom修改使用虚拟dom成本反而更高,不如直接修改真实dom

vue的虚拟dom(Virtual DOM )

模板转换成视图的过程 在底层实现中Vue会将模板编译成渲染函数,当然我们也可以不写模板,直接写渲染函数,以获得更好的控制. 渲染函数:渲染函数是用来生成Virtual DOM的:VNode虚拟节点:vnode可以理解成dom节点的描述对象,它描述了应该怎样去创建真实的DOM节点:patch(patching算法):虚拟DOM最核心的部分,它可以将vnode渲染成真实的DOM.这个过程是对比新旧虚拟节点之间有哪些不同,然后根据对比结果找出需要更新的的节点进行更新.其实际作用是在现有DOM上进行修改

vue 之 Virtual Dom

什么是Virtual Dom Virtual Dom可以看做一棵模拟了DOM树的JavaScript树,其主要是通过vnode,实现一个无状态的组件,当组件状态发生更新时,然后触发Virtual Dom数据的变化,然后通过Virtual Dom和真实DOM的比对,再对真实DOM更新.可以简单认为Virtual Dom是真实DOM的缓存. 为什么用Virtual Dom 我们知道,当我们希望实现一个具有复杂状态的界面时,如果我们在每个可能发生变化的组件上都绑定事件,绑定字段数据,那么很快由于状态太

深入理解react中的虚拟DOM、diff算法

文章结构: React中的虚拟DOM是什么? 虚拟DOM的简单实现(diff算法) 虚拟DOM的内部工作原理 React中的虚拟DOM与Vue中的虚拟DOM比较 React中的虚拟DOM是什么?   虽然React中的虚拟DOM很好用,但是这是一个无心插柳的结果.   React的核心思想:一个Component拯救世界,忘掉烦恼,从此不再操心界面. 1. Virtual Dom快,有两个前提 1.1 Javascript很快  Chrome刚出来的时候,在Chrome里跑Javascript非

Virtual DOM 真的比操作原生 DOM 快吗?

1. 原生 DOM 操作 vs. 通过框架封装操作. 这是一个性能 vs. 可维护性的取舍.框架的意义在于为你掩盖底层的 DOM 操作,让你用更声明式的方式来描述你的目的,从而让你的代码更容易维护.没有任何框架可以比纯手动的优化 DOM 操作更快,因为框架的 DOM 操作层需要应对任何上层 API 可能产生的操作,它的实现必须是普适的.针对任何一个 benchmark,我都可以写出比任何框架更快的手动优化,但是那有什么意义呢?在构建一个实际应用的时候,你难道为每一个地方都去做手动优化吗?出于可维

深度理解 Virtual DOM

目录: 1 前言 2 技术发展史 3 Virtual DOM 算法 4 Virtual DOM 实现 5 Virtual DOM 树的差异(Diff算法) 6 结语 7 参考链接 1 前言 我会尽量把 Virtual DOM 应用场景.实现思路.算法讲述清楚,希望大家阅读后,能让你 深入理解 Virtual DOM. 2 技术发展史 写一个像下面的应用程序,这个表格可以根据不同的字段进行升序或者降序. 最容易的方案是在你的 JavaScript 代码里面存储这样的数据: var sortKey

Virtual DOM的简单实现

了解React的同学都知道,React提供了一个高效的视图更新机制:Virtual DOM,因为DOM天生就慢,所以操作DOM的时候要小心翼翼,稍微改动就会触发重绘重排,大量消耗性能. 1.Virtual DOM Virtual DOM是利用JS的原生对象来模拟DOM,既然DOM是对象,我们也可以用原生的对象来表示DOM. var element = { tagName: 'ul', // 节点标签名 props: { class: 'list' // 节点的属性,ID,class... },

vue我的总结+转原理

vue:1 mvvm模型,model,view,viewmodel,自底层向上,逐渐增加的模式2 .vue文件 包含html css js 有最近设计原则,将自己需要的放到最近,2 组件化 避免了耦合2 数据双向绑定,数据变化视图变化,视图变化数据变化,观察者的模式,Object.defineProperty()3 丰富的指令 如: v-bind缩写: v-on缩写@ v-model v-if v-else v-else-if v-show v-for v-once v-html v-text4