一、vue2和vue3双向数据绑定原理发生了改变
vue2 的双向数据绑定是object.definepropert()
对数据进行劫持 结合 发布订阅模式的方式来实现的。
vue3 中使用了 es6 的 proxy 对数据代理
vue3可以拥有多个根节点
vue2使用选项类型API(Options API)对比vue3合成型API(Composition API)
vue2:vue2是把数据放入data中,在vue2中定义数据变量是data(),创建的方法要在methods中
vue3:vue3就需要使用一个新的setup()方法,此方法在组件初始化构造的时候触发。使用以下三个步骤来建立反应性数据:
从vue引入reactive;
使用reactive() 方法来声明数据为响应性数据;
使用setup()方法来返回我们的响应性数据,从而template可以获取这些响应性数据。
Vue2………………vue3
beforeCreate -> setup()
created -> setup()
beforeMount -> onBeforeMount
mounted -> onMounted
beforeUpdate -> onBeforeUpdate
updated -> onUpdated
beforeDestroy -> onBeforeUnmount
destroyed -> onUnmounted
activated -> onActivated
deactivated -> onDeactivated
vue2:vue2中我们可以使用pototype 的形式去进行操作,引入的是构造函数。
vue3:vue3中需要使用结构的形式进行操作,引入的是工厂函数;vue3中app组件中可以没有根标签。