1.生命周期不一样
- vue2:beforeDestory destoryed
- vue3:beforeUnmounted unmounted
2.组件间的通信方案用法不一样
- vue3删除了 o n / on/ on/off/$ once,所有默认不能使用全局事件总线,如果想要使用全局事件总线,需要使用第三方库mitt
- vue3删除了v-bind:xxx.sync修饰符,父子组件双向通信只能使用v-model
- v-model对组件的用法不一样
- vue2 v-model绑定的是value属性和input事件
- vue3 v-model绑定的是modelValue属性和update:modelValue自定义事件
- vue3删除$ listeners整合到了attrs中
- vue3删除$ children获取子组件的实例必须使用ref
指令不一样
- v-for和v-if的优先级不同
- vue2中v-for优先级高于v-if
- vue3中v-if优先级高于v-for
- vue3新增了一个指令v-memo用来缓存dom元素
开发模式不一样
- vue2只有选项式开发
- vue3有选项式和组合式开发
响应式原理不一样
- vue2通过Object.defineProperty实现的响应式
- vue3通过Proxy实现的响应式