vue2和vue3diff算法的区别?

简介: vue2和vue3diff算法的区别?

前言



vue2和vue3diff算法的区别


diff算法是什么?



diff 算法是一种通过同层的树节点进行比较的高效算法

其有两个特点:


  • 比较只会在同层级进行, 不会跨层级比较
  • 在diff比较的过程中,循环从两边向中间比较


diff 算法在很多场景下都有应用,在 vue 中,作用于虚拟 dom 渲染成真实 dom 的新旧 VNode 节点比较


vue2和vue3的算法的主要的区别?



静态标记

Vue 3 在编译阶段引入了静态标记,即对模板进行分析并标记出那些不会发生变化的部分。这些标记可以帮助 Vue 3 跳过比对静态节点和其子树的过程,从而提高性能。


基于 Proxy 的响应式系统

Vue 3 使用 Proxy 替代了 Vue 2 中的 Object.defineProperty 来实现响应式系统。Proxy 可以捕获对象的访问和修改,使得 Vue 3 在追踪状态变更时更加高效,并且可以监听动态新增的属性。


Patch Flag

Vue 3 在虚拟 DOM 节点中引入了 Patch Flag。Patch Flag 是一个标识,用于指示该节点的属性发生了哪些变化。通过 Patch Flag,Vue 3 可以快速地确定需要对节点进行的操作,从而减少不必要的比对和 DOM 操作。


Block Tree

在 Vue 3 中,模板编译器还引入了 Block Tree 的概念。Block Tree 可以将模板分割为多个块,每个块都有自己的作用域以及动态更新的依赖关系。这种分割可以提高性能,因为只有受影响的块才会触发更新。


片段(Fragment)

Vue 3 引入了片段(Fragment)的概念,即可以同时返回多个根元素。这样可以减少 DOM 中不必要的包装层级,提高渲染性能。


总结

总体而言,Vue 3 在 diff 算法方面进行了一些优化和改进,通过引入静态标记、基于 Proxy 的响应式系统、Patch Flag、Block Tree 等技术,提高了运行时的性能,并且减少了不必要的比对和 DOM 操作。这些改进使得 Vue 3 在性能和开发体验上都有所提升。


后言



创作不易,要是本文章对广大读者有那么一点点帮助 不妨三连支持一下,您的鼓励就是博主创作的动力



目录
相关文章
|
17天前
|
JavaScript
VUE里的find与filter使用与区别
VUE里的find与filter使用与区别
60 0
|
17天前
|
算法 数据安全/隐私保护
对称密钥加密算法和公开密钥加密算法有什么区别
【4月更文挑战第19天】对称密钥和公开密钥加密算法各有特点:对称密钥加密速度快,适用于大量数据,但密钥管理困难;公开密钥加密安全性高,密钥管理方便,但速度慢,常用于数字签名和身份验证。两者在不同场景下有不同优势。
47 6
|
17天前
|
JavaScript 算法 API
|
16天前
|
JavaScript 网络架构 开发者
阿珊解说Vue中`$route`和`$router`的区别
阿珊解说Vue中`$route`和`$router`的区别
|
17天前
|
机器学习/深度学习 传感器 算法
【机器学习】在聚类算法中,使用曼哈顿距离和使用欧式距离有什么区别?
【5月更文挑战第12天】【机器学习】在聚类算法中,使用曼哈顿距离和使用欧式距离有什么区别?
|
17天前
|
算法 网络协议
【计网·湖科大·思科】实验三 总线型以太网的特性、集线器和交换机的区别、交换机的自学习算法
【计网·湖科大·思科】实验三 总线型以太网的特性、集线器和交换机的区别、交换机的自学习算法
24 1
|
17天前
|
机器学习/深度学习 人工智能 算法
【机器学习】K-means和KNN算法有什么区别?
【5月更文挑战第11天】【机器学习】K-means和KNN算法有什么区别?
|
17天前
|
移动开发 JavaScript 前端开发
uni-app和Vue.js二者之间有什么区别?
1. uni-app是一个使用Vue.js开发所有前端应用的框架,支持一次编译多端运行。开发者编写的基础代码只需进行一次编写,就可以发布到多个平台,包括App、H5、微信小程序等。 2. Vue.js是一个渐进式JavaScript框架,用于构建用户界面。与其他大型框架不同的是,Vue被设计为可以自底向上逐层应用。
10 0
|
17天前
|
缓存 JavaScript 开发者
什么是vue的计算属性?为什么使用?计算属性和方法有什么区别?怎样选择
什么是vue的计算属性?为什么使用?计算属性和方法有什么区别?怎样选择
13 0
|
17天前
|
JavaScript API 开发者
vue3与vue2的区别
vue3与vue2的区别
21 2