1)双向数据绑定原理:vue2使用ES5的object.defineProperty()API对数据进行劫持,并结合发布订阅者模式实现双向数据绑定;vue3则使用ES6的proxy API对数据代理,从而实现了双向数据绑定。
2)性能:vue3相对于vue2在性能上有所提升,主要得易于使用Proxy API代替object.defineProperty()API以及通过省去for...in闭包等内容来提升效率。
3)碎片:vue3支持碎片,即可以拥有多个根节点而vue2不支持碎片。
4)API类型:vue2使用选项类型API即将不同得属性(如data,computed,methods等)分割到不同的选项对象中;vue3则使用组合式API通过setup方法来创建组件,并使用三个步骤建立反应性数据。
5)定义数据变量和方法:vue2将数据放入data中,定义数据变量是data(){},创建的方法要在methods:{}中;vue3则通过setup方法来创建组件,并使用三个步骤建立反应性数据。
6)父子传参:vue2中父传子用props,子传父时间emitting Events;vue3的父子之间传参则与vue2有所不同。