Vue2和Vue3的区别

区别:

  1. v-if和v-for的优先级
  • 在vue2中:当v-if和v-for同时使用时,v-for的优先级高于v-if(因此我们通常需要计算属性先对数据进行加工处理,以达到性能优化的目的)
  • 在vue3中:当v-if和v-for同时使用时,v-if的优先级高于v-for

  1. .sync修饰符
  • vue2中:由于vue中是单向数据流,父子组件在传值时想要实现v-model的效果就要用到.sync修饰符来实现“双向绑定”
  • vue3中:对v-model进行了改造,不再需要 .sync 修饰符即可达到数据双向绑定的效果。在vue3中支持多个 v-model属性,默认使用 modelValue 作为 prop,update:modelValue作为事件,当多个v-model绑定时,书写为例:v-model:title=“title”,此时 title 作为prop,update:title 作为事件

  1. 全局API
  • vue2:vue2使用选项类型api,选项型api在代码里分割了不同的属性:data,computed,methods等。
  • vue3:vue3使用合成型api,新的合成型api能让我们使用方法来分割,相比于旧的api使用属性来分组,这样代码会更加简便和整洁。

  1. 双向数据绑定原理不同
  • vue2:vue2的双向数据绑定是利用ES5的一个APIObject.definePropert() 对数据进行劫持,结合发布订阅模式的方式来实现的。
  • vue3:vue3中使用了ES6的Proxy API对数据代理。相比vue2.x,使用proxy的优势如下:

defineProperty只能监听某个属性,不能对全对象监听
可以省去for in,闭包等内容来提升效率(直接绑定整个对象即可)
可以监听数组,不用再去单独的对数组做特异性操作vue3.x可以检测到数组内部数据的变化。


  1. 生命周期
  • vue2:vue2中的生命周期:

beforeCreate 组件创建之前
created 组件创建之后
beforeMount 组价挂载到页面之前执行
mounted 组件挂载到页面之后执行
beforeUpdate 组件更新之前
updated 组件更新之后

  • vue3:vue3中的生命周期:

setup 开始创建组件
onBeforeMount 组价挂载到页面之前执行
onMounted 组件挂载到页面之后执行
onBeforeUpdate 组件更新之前
onUpdated 组件更新之后


  1. key在template和v-if上的使用
  • vue2中:在使用v-if、vi-else、v-else-if时,为了保证dom节点渲染的正确性,通常需要在对应的节点添加不同的key,以确保vue在进行虚拟dom对比时是准确的;vue2中template在v-for循环时是不能设置key的,否则会产生警告(需要给子节点设置key)。

  • vue3中:在使用v-if、vi-else、v-else-if时,不用提供唯一的key对dom节点进行区分,因为vue内部会自动生成唯一的key,如果你提供了key,那你就要保证它的唯一性;vue3中template在v-for循环时,key应该设置在template标签上


  1. this
  • vue2中:无时无刻都要使用this
  • vue3中:因为setup函数的存在,所有的props、data等都不需要用this进行访问(vue3对vue2绝大多数是兼容的,如果你用了vue2相关的东西,那你还是需要像vue2一样书写)

  1. typescript支持
  • vue2中:默认是不支持typescript的。
  • vue3中:支持使用typescript,使用typescript在构建大型项目时,能够很好的提高项目开发的质量。

相关推荐

  1. vue2vue3区别

    2024-02-23 17:52:03       55 阅读
  2. Vue3Vue2区别

    2024-02-23 17:52:03       50 阅读
  3. Vue2Vue3区别

    2024-02-23 17:52:03       60 阅读
  4. Vue2Vue3区别

    2024-02-23 17:52:03       48 阅读
  5. vue2vue3区别

    2024-02-23 17:52:03       51 阅读
  6. vue2vue3区别

    2024-02-23 17:52:03       46 阅读
  7. vue2vue3区别

    2024-02-23 17:52:03       43 阅读
  8. vue2vue3区别

    2024-02-23 17:52:03       33 阅读
  9. Vue3Vue2区别优化

    2024-02-23 17:52:03       51 阅读
  10. vue3vue2区别是什么

    2024-02-23 17:52:03       47 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-23 17:52:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-23 17:52:03       101 阅读
  3. 在Django里面运行非项目文件

    2024-02-23 17:52:03       82 阅读
  4. Python语言-面向对象

    2024-02-23 17:52:03       91 阅读

热门阅读

  1. 通过SSH 可以访问Ubuntu Desktop吗?

    2024-02-23 17:52:03       46 阅读
  2. 排序算法:冒泡排序

    2024-02-23 17:52:03       44 阅读
  3. 快速了解eBay被封号的原因以及卖家申诉的方法!

    2024-02-23 17:52:03       136 阅读
  4. 【数据结构和算法】链表的简单实现

    2024-02-23 17:52:03       64 阅读
  5. Oracle 总结

    2024-02-23 17:52:03       63 阅读
  6. CSS:BFC

    CSS:BFC

    2024-02-23 17:52:03      47 阅读
  7. kafka 生产者消费者设计思考

    2024-02-23 17:52:03       54 阅读