-
响应性原理上:
vue2采用的是object的defineProperty方法对数据进行劫持,结合发布者-订阅者的模式来实现,但是object.defineProperty只能监听某个属性,不能对全对象监听。
vue3采用Proxy和reflect API对数据代理,通过reactive,函数给每个对象都包含一层Proxy,通过Proxy来监听属性的变化实现对数据的监控。 -
vue2new的实例上挂载的属性和方法,无论实际有没有使用,都运行一遍,增加性能的消耗。 vue3实施模块化按需引入,减少性能消耗,减少加载时间,优化用户体验。
-
vue2单组件要求只能有一个根元素,vue3没有这个要求。
-
vue2使用选项式API,vue3使用的组合式API。
-
vue3的生命周期相比vue2中的少了created和beforeCreated,多了setup API,setup就是在created和beforeCreated围绕生成的,不需要显式的将方法和属性定义在期内。 vue3使用的ES6中Proxy和Reflect