«

Vue3与Vue2区别归纳总结

时间:2023-8-12 14:02     作者:六思逸     分类: Vue


Vue3与Vue2的区别归纳

1.1:底层原理的区别

Vue3完整支持TS,Vue3底层代码大多数(90%)都采用ts进行架构

1.2:响应式区别

Vue3使用proxy来代理所有i响应式数据
Vue2使用defineProperty来拦截响应式数据(一次只能拦截一个key,无法很好的相应数组的变化)

1.3:this指向

Vue3采用compositionAPI,所有代码逻辑放在settup作用域中,完全去掉this
Vue2采用this访问自身挂在的所有属性、方法、函数等

1.4:底层运行变化

Vue3底层代码完全重构,所以在Vue3中 v-if的优先级比v-for高
Vue2 v-for优先级高于v-if

1.5:Fragment / 模板简单化

Vue3 采用了虚拟父级,可以多个根节点
Vue 只支持1个根节点

1.6:语法逻辑变换

Vue3 compositionAPI(组合式API),逻辑更为紧密(setup)
Vue2 选项式API。所有逻辑独立放在自己的标签内

1.7:生命周期

Vue3采用setup进行数据初始化(setup 相当于 beforeCreate + created)
其他生命周期采用hosks方式 onMounted() onUpdated() onUnmounted()
Vue2采用 create mount update destory

1.8:组件通信

Vue3采用hosks方式

1.8.1 定义props及使用
const p = defineProps({
    key:{约束}
})

p.key //使用
1.8.2 定义emits及使用
const $emit = defineEmits(['事件1','事件2'])
$emit('事件1',参数)

Vue2采用this

1.8.3 定义props及使用(Vue2所有的props接收到就会挂载到this上)
props:{
    key:{约束}
}
this.key //使用
1.8.4 定义emits及使用
this.$emit('自定义事件',参数)

1.9:style支持动态属性

.box{
    color:v-bind(mycolor) //基础响应数据
    color:v-bind('mycolor.color') //引用响应数据
}

1.10:Teleport 任意组件传送门

Vue3独有 可以把Teleport标签,添加到HTML的任意元素中

标签: Vue3与Vue2区别归纳总结

版权所有:六思逸
文章标题:Vue3与Vue2区别归纳总结
除非注明,文章均为 六思逸 原创,转载请注明作者和出处 六思逸

扫描二维码,在手机上阅读

推荐阅读: