1、API类型不同
vue2:vue2使用选项类型api,选项型api在代码里分割了不同的属性:data,computed,methods等。
vue3:vue3使用合成型api,新的合成型api能让我们使用方法来分割,相比于旧的api使用属性来分组,这样代码会更加简便和整洁。
2、生命周期钩子函数不同
vue2:
- beforeCreate 组件创建之前
- created 组件创建之后
- beforeMount 组价挂载到页面之前执行
- mounted 组件挂载到页面之后执行
- beforeUpdate 组件更新之前
- updated 组件更新之后
vue3:
- setup 开始创建组件
- onBeforeMount 组价挂载到页面之前执行
- onMounted 组件挂载到页面之后执行
- onBeforeUpdate 组件更新之前
- onUpdated 组件更新之后
3、双向数据绑定的方式不同
vue2是采用ES5的object.definePropert()对数据进行劫持,结合发布订阅和观察者模式进行的
vue3是采用ES6的Proxy的数据代理来对数据进行代理,修复了v2中对象和数组的属性添加修改的问题
4、v-if和v-for优先级
在v2中如果同时使用v-for 和 v-if 那么v-for的优先级是高于 v-if 的
v3中v-if 始终高于 v-for但是还是不建议一起使用
5、创建vue实例的方式不一样
vue2中使用new Vue()的方式,来创建实例
vue3中使用createApp()方法来创建实例
6、定义全局变量的方法不一样
vue2中使用Vue.prototype.$http = axios
vue3中使用app.config.globalProperties.$http = axios