美文网首页
vue2和vue3的区别

vue2和vue3的区别

作者: zhao_madman | 来源:发表于2023-03-20 17:26 被阅读0次
内部优化
1.vue2与vue3双向数据绑定原理不同
2.静态变量提升
3.pathFlag 标记
4.缓存事件处理函数
写法优化
1.vue3碎片化,可写多个根节点
2.api 不同 选项型 vue2: opsition api 组合型 vue3: composition api
3.数据存储方式不同 vue2:data vue:ref reactive
1.vue2与vue3双向数据绑定原理不同

vue2 是利用es5的object.defineProperty对数据进行劫持结合发布订阅模式实现的
vue3是利用es6的proxy API 对数据进行的一个代理
细分

  1. diff 算法优化,新增PatchFlag标记 只比较带有静态标记的节点
    2.静态提升 vue3中对于不参与更新的元素会做静态提升,只会创建一次,在渲染的时候复用即可
    3.事件监听缓存 默认情况下会给函数打一个静态标记 patchflag:8,表明这是个函数,会进行缓存
2.vue3支持碎片

就是在组件中可以放置多个根节点

3.vue3中采用composition API

vue2:采用的选项型API(opsition API)
vue3:采用的合成型API(composition API

4.建立的数据方式不同

vue2:数据是放置在data属性中
vue3:需要使用setup 方法,该方法在初始化构造的时候触发
注:ref:需要value 访问,内部还是使用的defineProperty set get 方法进行监听(proxy 不支持基本类型的监听)
reactive: 使用的proxy对数据进行的一个代理

5.声明周期函数不同

vue2:
beforeCreate (初始化前)
created (初始化完成)
beforeMount(挂载前)
mounted (挂载完成)
beforeUpdate (更新前)
updated (更新完成)
beforeDestory (销毁前)
distoryed(销毁完成)
activeted(页面缓存执行)
deactiveted(页面缓存)

vue3:
setup();
onBeforeCreate (初始化前)
onCreated (初始化完成)
onBeforeMount(挂载前)
onBMounted (挂载完成)
onBeforeUpdate (更新前)
onUpdated (更新完成)
onBeforeUnmount (销毁前)
onUnmount(销毁完成)
onActiveted(页面缓存执行)
onDeactiveted(页面缓存)

6.传参方式不同,由vue3 setup()特性决定的
7.vue3新增的Teleport瞬移组件

相关文章

网友评论

      本文标题:vue2和vue3的区别

      本文链接:https://www.haomeiwen.com/subject/hitprdtx.html