vue2和vue3的区别

150 阅读1分钟

1.生命周期的区别

vue3vue2生命周期
setup()beforCreate()创建前
setup()ceatd()创建后
onBeforeMount()beforMount()挂载前
onMounted()mounted()挂载后
onBeforeUpdate()beforUpdate()更新前
onUpdated()updated()更新后
onBeforeUnmount()beforDestroy()销毁前
onUnmounted()destroyed()销毁后

2.选项式API和组合式API

vue2用的是选项式API(Option API),将数据和函数集中起来处理,将功能点切割了当逻辑复杂的时候不利于代码阅读

vue3用的Composition API 这是一种新的组织组件代码的方式,可以更好地组织和重用逻辑代码

3.v-if和v-for的优先级

在vue2里v-for的优先级要高于v-if的,在vue2里v-if和v-for是可以一起使用

在vue3里v-if的优先级要高于v-for的,在vue3里v-if和v-for是不可以一起使用,如果要一起使用要添加一个外部标签进行使用

4.TypeScript 支持

Vue3 由TS重写,相对于 Vue2 有更好地TypeScript支持

Vue2 Option API中 option 是个简单对象,而TS是一种类型系统,面向对象的语法,不是特别匹配

5.根节点

Vue3支持在template中写多个根

Vue2在template中只能写一个

6.响应式原理

Vue3 响应式原理基础是 Proxy

Proxy是ES6新特性,通过第2个参数handler拦截目标对象的行为。相较于Object.defineProperty提供语言全范围的响应能力,消除了局限性。但在兼容性上放弃了(IE11以下)

Vue2 响应式原理基础是Object.defineProperty

Object.defineProperty基本用法:直接在一个对象上定义新的属性或修改现有的属性,并返回对象