【每天一个知识点】vue2和vue3的区别

最近发现很多要求Vue3的技术了,不得不说,it技术的更新真的太快了,作为vue2老用户,我们在学习Vue3前应该了解他们的区别以及背后的原因。
甚至作为一个面试官,只需这一个问题就可以摸清你的水平。
所以了解其区别及背后改变的本质非常重要。

1、vue2 和vue3双向数据绑定原理不同
vue2的数据绑定是利用Object.definePropet()对数据进行劫持 结合 发布订阅模式实现
vue3利用Proxy API对数据代理实现

这第一个区别其实考的就是vue双向绑定的原理,看过vue2源码的同学都知道,v-model的核心其实就是Object.definePropet,监听数据,然后再set。
对这方面没了解的同学建议先深入学习一下v-model双向绑定原理。
那么升级到Vue3之后呢,就不再使用definePropet了,而是改用Proxy这个方法
两者的区别:
defineProperty只能监听某个属性,ProxyAPI可以进行全局监听
proxy可以监听数组,不用单独对数组进行异性操作,可以检测到数组内部的变化
proxy可以直接绑定整个对象,省去for in 闭包等内容来提升效率

2、 vue3默认进行懒观察(lazy observation)。
接上,这是双向绑定的另一个重点之一,观察者模式。
vue2.0中数据一开始就创建了观察者,数据很大的时候,就会出现问题,vue3中进行了优化 只有用于渲染初始化可见部分的数据,才会创建观察者,效率更高。

3、更精准的变更通知
同上 双向绑定模块的一种优化
vue2.x 版本中,你使用 Vue.set 来给对象新增一个属性时,这个对象的所有 watcher 都会重新运行;
vue3.x 版本中,只有依赖那个属性的 watcher 才会重新运行

4、vue3.0中加入了typeScript以及PWA的支持
typeScript不必多说,将弱类型的js提升为强类型,使开发更规范,这个react对ts的支持很方便,而现在vue3也吸收进来了。
PWA(Progressive Web App)渐进式Web应用程序,说白了就是让网页开的速度变快,有着跟app相似的功能通知推送。
在vue3中使用pwa非常简单,在使用 vue create projectName 时,选择pwa就可以使用pwa了(其它功能根据自己需要进行选择,本篇只讲在vue-cli3中使用pwa)。

https://blog.csdn.net/qq_40154925/article/details/104384250

5、项目目录结构发生了变化
vue2.x中 移除了配置文件目录,config 和 build 文件夹
vue3.x中 相关的配置需要在根目录中手动创建vue.config.js,比如跨域
这个刚开始可能会有点不习惯,其实大同小异。

6、组件的变化
这应该算是vue3使用者感受到最大的变化了,使用上完全跟Vue2不一样了,基本上都封装在setUp这个方法里面,那么Vue的作者为什么要这么改?能答出这个问题的水平上一个层次。

我们先看使用上的变化:https://zhuanlan.zhihu.com/p/139590941

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue 2 和 Vue 3 是 Vue.js 框架的不同版本,它们之间有一些重要的区别。以下是一些主要的区别: 1. 性能优化:Vue 3 的编译器和运行时被重写,提供了更好的性能表现。Vue 3 中引入了虚拟 DOM 的优化算法,使得渲染速度更快,并且有更小的包体积。 2. Composition API:Vue 3 引入了 Composition API,这是一个基于函数的 API 风格,可以更灵活地组织和复用组件逻辑。相比于 Vue 2 的 Options API,Composition API 提供了更好的代码组织和可读性。 3. TypeScript 支持:Vue 3 对 TypeScript 的支持更加完善。Vue 3 的 API 已经使用了 TypeScript 进行重新设计,提供了更好的类型推导和类型检查。 4. 引入了新的全局 API:Vue 3 引入了一些新的全局 API,如 createApp()、createRenderer() 等,用于创建应用程序实例和自定义渲染器。 5. 更好的 Tree-Shaking 支持:Vue 3 改进了 Tree-Shaking 支持,可以更好地优化打包大小,只包含使用到的代码。 6. 更好的响应式系统:Vue 3 重写了响应式系统,提供了更高效的追踪和更新机制,减少了不必要的代理和观察。 7. 删除了一些过时和废弃的特性:Vue 3 删除了一些过时和废弃的特性,以提高整体的可维护性和性能。 需要注意的是,由于 Vue 3 在设计上有一些重大变化,迁移现有的 Vue 2 项目到 Vue 3 可能需要做一些修改和调整。因此,在决定使用哪个版本时,需考虑到项目的具体情况和迁移成本。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值