(一)生命周期函数不同
Vue2:beforeDestroy、destroyed
Vue3:beforeUnmount、unmounted
(二)组件间通信方式用法不同
Vue3 默认不能使用全局事件总线,如果要使用,需要使用第三方库 mitt
Vue3 删除了 .sync 修饰符
父子组件双向通信只能使用 v-model
v-model:
Vue2 中绑定的是 value 属性和 input 自定义事件
Vue3 中绑定的是 modelValue 属性和 update:modelValue 自定义事件
(三)v-for和v-if优先级不同
Vue2 中 v-for 优先级更高
Vue3 中 v-if 优先级更高
(四)开发模式不一样
Vue2 只有选项式开发模式
Vue3 新增了组合式开发模式
(五)响应式原理不一样
Vue2 通过 defineProperty 完成响应式
Vue3 通过 Proxy 实现的响应式
(六)Vue2和Vue3 Diff算法原理不一样
Vue2 比较相同层级子节点时,从两端到中间遍历
Vue3 比较相同层级子节点时,求最长重复子序列,然后再比较