美文网首页
diff算法初了解

diff算法初了解

作者: 江川哇 | 来源:发表于2021-10-14 09:37 被阅读0次
一、虚拟DOM: 就是对象 就是数据

核心思想:提升性能的
核心思想解决的问题:数据的对比操作比dom操作快

二、diff算法

vue采用 snabbdom
react采用 virtual-dom

diff算法核心:提升性能
小的项目中使用 提升不了性能 大中型项目中才会用到

四、diff算法详解

1、旧的虚拟节点和新的虚拟节点进行比较(patch)最终吧新的虚拟dom节点展示在页面中
2、根据snabbdom了解h函数就是用来生成虚拟dom的,并且h函数的格式我猜想是

function h () {
  return {
    children:[]
    elm:undefined,
    sel:undefined,
    data:undefined,
    key:undefined,
    text:undefined
  }
}

3、 根据snabbdom了解到patch函数是做旧虚拟节点和新虚拟节点对比,最终把新的虚拟节点变成真实的dom渲染到页面上。patch就是diff算法的核心内容。

//了解旧虚拟节点和新虚拟节点比较规则:
1、如果节点不相同,暴力删除再创建添加
2、旧虚拟节点和新虚拟节点没如果  结构和顺序完全一样,直接return
3、如果不加key什么也不是,如果有Key 就算排序不一样,只要Key相同也不会重新创建新的节点

diff算法核心:【有2个指针 代表下标】
1、 旧前  和  新前
   old++ 、 new++
2、旧后 和 新后
   old--  new--
3、旧前 和 新后
   old++  new--
4、旧后 和 新前
   old--  new++
5、以上4个都不满足则遍历查找
6、以上5个都执行完 剩下的要不删除 要不创建

相关文章

  • diff算法初了解

    一、虚拟DOM: 就是对象 就是数据 核心思想:提升性能的核心思想解决的问题:数据的对比操作比dom操作快 二、d...

  • 理解vue2.x之diff算法

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

  • sammary

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

  • React diff算法

    传统的diff算法复杂度是O(n*3),而React diff算法改进了传统的diff算法,将算法复杂度降低到了O...

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

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

  • react VS Vue diff算法

    react diff diff算法的作用:数据更改,生成相应的虚拟DOM,与真实DOM作对比,通过diff算法,对...

  • 到底React Fiber架构是个什么

    diff 算法缺陷 diff 算法问题出现在,React 的调度策略 -- Stack Reconfile。这...

  • 9. diff算法的理解

    diff算法的理解

  • 谈谈React 16 的 Diff 策略

    我相信在看这篇文章的读者一般都已经了解过 React 16 以前的 Diff 算法了,这个算法也算是 React ...

  • Vue原理「十二」-- vdom和diff算法 *****

    diff 算法概述 diff即对比,是一个广泛的概念,如linux diff、git diff两个JS对象也可以做...

网友评论

      本文标题:diff算法初了解

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