美文网首页
2021-03-18 vue的diff算法核心

2021-03-18 vue的diff算法核心

作者: SherrinfordL | 来源:发表于2021-03-18 06:53 被阅读0次

patch,someVnode,patchVnode,updataChildren

深度优先,同层比较

根据tagname和key进行比较

根据oldVnode和newVnode比较

1.someVnode根据标签名,name,属性等比较

2.patchVnode根据oldVnode是否有孩子,newVnode是否有孩子,新旧节点是否有相同文本,新旧节点是否都有子节点,四种方案

3.updataChildren是核心,新旧节点通过someVnode和patchVnode进行第一轮比较。

第二轮值得深入比较则按照新规则,按照新旧节点首尾比较,有四种方案,例如旧首对新首,旧首对新尾等。

若四种方案都错误则判断有无key值,有key值在比较过程中会根据key值判断是否相同节点,避免隐蔽bug,同时增加虚拟dom渲染的patch效率。

第三轮处理过剩的dom节点,一般批量增加或批量删除

若StartIdx>EndIdx也表示oldCh或vCh其中一个遍历结束

相关文章

  • VueDiff算法的简单分析和一些个人思考

    Diff算法是Vue视图动态改变的核心算法之一 本文包括对Diff算法的简单概括,和我闲的难受对Diff算法的一些...

  • 2021-03-18 vue的diff算法核心

    patch,someVnode,patchVnode,updataChildren 深度优先,同层比较 根据tag...

  • sammary

    vue-diff算法 react 性能优化 diff算法 ,局部更新DOMshouldComponentUpdat...

  • Vue2.0的Diff算法

    原文:解析Vue2.0的Diff算法 Vue2.0加入了Virtual Dom,Vue的Diff位于patch.j...

  • Vue的diff算法核心原理

    写在最前:本文转发掘金[https://juejin.cn/post/6994959998283907102]类似...

  • vue系列---vue-diff

    1.vue-diff 是什么? 提到vue的diff算法就不得不提一个名词 虚拟dom(Virtual DOM) ...

  • Vue.js 3.0 对比 Vue 2

    1、Vue 3.0 性能提升主要是通过哪几方面体现的? 一.编译阶段 diff 算法优化vue3 在 diff 算...

  • vue3是如何变快的

    看了李南江老师的课程,将内容做一个记录 diff算法优化 vue2diff算法是对节点进行全量对比vue3.0在创...

  • 理解vue2.x之diff算法

    了解diff算法前,应该先了解虚拟DOM(VNode),在vue中是先创建VNode,再通过diff算法看哪个节点...

  • 第十七天

    1.你怎么理解vue中的diff算法? diff算法是虚拟DOM技术的必然产物:通过新旧虚拟DOM作对比(即dif...

网友评论

      本文标题:2021-03-18 vue的diff算法核心

      本文链接:https://www.haomeiwen.com/subject/onzycltx.html