在前端面试或技术选型中,Vue 2 和 Vue 3 的区别是绕不开的经典话题。很多初学者容易陷入概念误区,本文将从底层响应式原理和代码组织范式两个核心维度,带你彻底搞懂它们的底层逻辑。
一、 底层响应式原理的颠覆性升级
Vue 2 和 Vue 3 最本质的区别,在于其数据劫持(响应式)的底层实现方案不同。
1. Vue 2:Object.defineProperty
-
实现机制:在组件初始化时,Vue 2 会深度遍历 中的属性,利用 为每个属性添加 和 。dataObject.definePropertygettersetter
-
致命痛点:
-
无法监听对象属性的新增和删除:如果直接给对象赋值新属性(如 ),Vue 是检测不到的。this.obj.newKey = \’val\’
-
无法完美监听数组下标和长度的变化。
-
-

