【VUE】Vue2与Vue3两者Diff流程的区别

Vue2和Vue3在Diff算法的实现上有一些显著的区别,主要表现在以下几个方面:

  • 源码架构:Vue2的Diff算法是在虚拟DOM模块中实现的,需与渲染模块和事件模块耦合在一起。而Vue3则将Diff算法单独抽离为一个模块,便于维护和重用。
  • 标记方式Vue2的Diff算法采用的是双端比较的方式,分别从新老节点树的头尾开始比较,寻找相同的节点进行复用。而****Vue3则是采用深度优先遍历的方式,对新老VNode树进行标记**,并通过最长递增子序列算法进行优化**,进一步提高了Diff算法的效率和性能。
  • 操作粒度 :Vue2的Diff算法是以整个VNode为单位进行修改的,这样可能会涉及到较多不必要的DOM操作,导致性能较低。而Vue3则通过Granular
    Detection(红色插头)技术,将操作粒度缩小到了最小,只对需要修改的具体属性进行操作,从而实现了更加精细和高效的页面更新。
  • 操作时机:Vue2的Diff算法是在数据更新后立即执行的,这可能会与其生命周期钩子函数有所冲突,导致一些不必要的更新。而Vue3则通过scheduler调度器,在下一次事件循环开始前进行异步更新,从而减少了不必要的重复更新。
相关推荐
Eva2156655 分钟前
Flask+Vue构建图书管理系统及Echarts组件的使用
vue.js·flask·echarts
Bruce_Liuxiaowei43 分钟前
构建macOS命令速查手册:基于Flask的轻量级Web应用实践
前端·macos·flask
Python私教1 小时前
安装electron项目是为什么要执行postinstall script
前端·javascript·electron
shmily_yyA1 小时前
Nextjs15 实战 - React Notes之SidebarNoteList优化和Suspense的使用
前端·react.js·前端框架
知识分享小能手1 小时前
CSS3学习教程,从入门到精通, 化妆品网站 HTML5 + CSS3 完整项目(26)
前端·javascript·css·学习·css3·html5·媒体
了不起的码农2 小时前
ES6对函数参数的新设计
前端·ecmascript·es6
XH2762 小时前
Android 通知用法详解
前端
陈随易2 小时前
盘点23个Nodejs的替代品Bun的实用功能
前端·后端·程序员
uhakadotcom2 小时前
兄弟们,炸裂了!llama 4发布了!又有哪些创业公司被颠覆了?
前端·算法·面试
uhakadotcom2 小时前
EventEmitter3:高性能事件发射器的使用与优势
前端·javascript·面试