1.数据绑定的原理发生变化
- vue2 的双向数据绑定是利用了 es5 的一个 API Object.definepropert() 对数据进行劫持
结合发布订阅模式来实现的。 - vue3中使用了es6的 proxyAPI 对数据进行处理。
2.vue3支持碎片化
减少标签层级, 减小内存占用
3.composition API
- vue2使用选项式api,在代码里分割了不同得属性:data,computed,methods等
- vue3组合式api。旧得选项型api,能让我们使用方法来分割,vue2使 用属性来分组,这样代码会更加简便和整洁
4.建立数据的data
- vue2是把数据放入data中
- vue3就需要使用一个新的setup()方法,此方法在组件初始化构造得时候触 发。
5.生命周期的变化
beforeCreate→setup
Created→setup
beforeMount→onBeforeMount
mounted→onMounted
beforeUpdate→onBeforeUpdate
updated→onUpdated
beforeDestory→onBeforeUnmount
destoryed→onUmmounted
errorCaptured→onErrorCaptured
6.main.js文件
- vue2中我们可以使用prototype(原型)的形式去进行操作,引入构造函数
- vue3中使用结构的形式进行操作,引入的是工厂函数,vue3中的app组件中可以没有根标签
7.父子传参不同
- vue2中父传子的时候,会调用this.$emit然后传入事件名称和对象
- vue3中setup函数接受两个参数:(props,context)=>{},props接收参数和context中调用emit(),setup函数只能是同步的不能是异步的