Vue2、Vue3的Diff算法比较

前言

diff算法是vue更新dom前,比较新旧vdom的一种优化方式

特点:

  1. 只会在同一级比较

  2. 从两边往中间收拢

差别

  • vue2 和 vue3的差别在于处理完头尾节点后,对设于节点的处理方式
  • vue2 是遍历旧节点,将旧节点映射到map里,然后再遍历新节点,看是否有可以复用的再打上补丁
  • vue3 是建立一个 新节点的剩余节点在旧节点中的位置 的数组,然后通过数组找到一个最长递增子序列,然后这个序列的节点不动,再去移动剩下的节点。

最长递增子序列

js 复制代码
function lengthOfLIS(nums) {
  const n = nums.length;
  if (n === 0) return 0;

  const dp = new Array(n).fill(1);

  for (let i = 1; i < n; i++) {
    for (let j = 0; j < i; j++) {
      if (nums[i] > nums[j]) {
        dp[i] = Math.max(dp[i], dp[j] + 1)
      }
    }
  }

  return Math.max(...dp);
}
相关推荐
千寻girling4 小时前
机器学习 | 无监督学习算法(了解) | 尚硅谷学习
学习·算法·机器学习
小七在进步4 小时前
数据结构:线性表之顺序表
c语言·数据结构·算法
张小九994 小时前
【酶改造】如何利用进化信息快速定位蛋白质突变热点?EVcouplings 保姆级教程
算法
Never_love_MCI!4 小时前
洛谷P15799 [GESP202603 五级] 找数 题解
数据结构·c++·算法
仍然.4 小时前
算法题目---BFS解决FloodFill算法问题
算法·宽度优先
Sirius Wu4 小时前
MoE与Fengyu-Dense_架构对比及训练方案
人工智能·深度学习·算法·机器学习·语言模型·架构
却道天凉_好个秋4 小时前
HEVC(一):环路滤波
人工智能·算法·计算机视觉·环路滤波
8Qi84 小时前
LeetCode 300 & 674:最长递增子序列 vs 最长连续递增子序列
算法·leetcode·职场和发展·动态规划
sheeta19985 小时前
LeetCode 补拙笔记 日期:2026.06.07 题目:283. 移动零
笔记·算法·leetcode
黎阳之光科技管控5 小时前
纯视觉定位赋能海关口岸 无感通关提升国门安全与效率
算法·安全