位置: IT常识 - 正文

vue2和vue3的区别(由浅入深)(vue2和vue3的区别大么)

编辑:rootadmin
vue2和vue3的区别(由浅入深) 前言

推荐整理分享vue2和vue3的区别(由浅入深)(vue2和vue3的区别大么),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:vue2和vue3的区别大不,vue2和vue3的区别面试题,vue2和vue3的区别以及发生的哪些变化,vue2和vue3的区别简答,vue2和vue3的区别大么,vue2和vue3的区别大不,vue2和vue3的区别大不,vue2和vue3的区别面试题,内容如对您有帮助,希望把文章链接给更多的朋友!

vue2和vu3之前的区别,一直以来是面试必考题目,如何回答,回答的层次决定了面试者的对于vue2,3的理解,以及对于vue3目前稳定版本发展的方向的了解,即考察使用程度,又考察了学习能力,可以说是回答即可以很简单,也可以很不简单,这里需要注意的是面试官的面试程度,需要我们层层递进,由浅入深来回答,这样可以体现出面试者的考虑全面,又能体现知识广度。简而言之,vue2升级vue3之后变得更快,更轻,协作更方便。无论对于我们开发者的体验或者用户使用方面都是升级优化,但是本质区别是什么,下面分为几个部分进行讲解。

 vue2 vs vue3对比vue2vue3脚手架命令式可视化创建脚⼿架组件通信见下文见下文数据监听watch,computedwatch,watchEffect,computed双向绑定Object.definePropertyProxyAPI⽣命周期见下文见下文api选项式组合式   双向绑定更新

vue2 的双向数据绑定是利⽤ES5 的⼀个 API ,Object.defineProperty()对数据进⾏劫持 结合 发布订阅模式的⽅式来实现的。

vue3 中使⽤了 ES6 的 ProxyAPI 对数据代理,通过 reactive() 函数给每⼀个对象都包⼀层 Proxy,通过 Proxy 监听属性的变化,从⽽ 实现对数据的监控。

这⾥是相⽐于vue2版本,使⽤proxy的优势如下

1.defineProperty只能监听某个属性,不能对全对象监听 可以省去for in、闭包等内容来提升效率(直接绑定整个对象即可)

2.可以监听数组,不⽤再去单独的对数组做特异性操作,通过Proxy可以直接拦截所有对象类型数据的操作,完美⽀持对数组的监听。

实例化

Vue2.x中new出的实例对象,所有的东西都在这个vue对象上,这样其实⽆论你⽤到还是没⽤到,都会跑⼀遍,这样不仅提⾼了性能消耗,也⽆疑增加了⽤户加载时间。

⽽vue3.0中可以⽤ES module imports按需引⼊,如:keep-alive内置组件、v-model指令,等等,不仅我们开发起来更加的便捷,减少 了内存消耗,也同时减少了⽤户加载时间,优化⽤户体验。

生命周期

引用掘金图片如下:

获取props

vue2在script代码块可以直接获取props,vue3通过setup指令传递

vue2:console.log(‘props’,this.xxx)vue3:setup(props,context){ console.log(‘props’,props) }数据和方法的定义

Vue2使⽤的是选项类型API(Options API),Vue3使⽤的是合成型API(Composition API)

vue2和vue3的区别(由浅入深)(vue2和vue3的区别大么)

Vue2:

data() { return {}; }, methods:{ }

Vue3:

数据和⽅法都定义在setup中,并统⼀进⾏return{}

给父组件传值emitvue2:this.$emit()vue3:setup(props,context){context.emit()} watchEffect

Vue3中除了watch,还引入了副作用监听函数watchEffect,用过之后我发现它和React中的useEffect很像,只不过watchEffect不需要传入依赖项。

那么什么是watchEffect呢?

watchEffect它会立即执行传入的一个函数,同时响应式追踪其依赖,并在其依赖变更时重新运行该函数。

computed和watch所依赖的数据必须是响应式的。Vue3引入了watchEffect,watchEffect 相当于将 watch 的依赖源和回调函数合并,当任何你有用到的响应式依赖更新时,该回调函数便会重新执行。不同于 watch的是watchEffect的回调函数会被立即执行,即({ immediate: true })。

组件通信

注意

props中数据流是单项的,即子组件不可改变父组件传来的值

在组合式API中,如果想在子组件中用其它变量接收props的值时需要使用toRef将props中的属性转为响应式。

attrs和listeners

子组件使用$attrs可以获得父组件除了props传递的属性和特性绑定属性 (class和 style)之外的所有属性。

子组件使用$listeners可以获得父组件(不含.native修饰器的)所有v-on事件监听器,在Vue3中已经不再使用;但是Vue3中的attrs不仅可以获得父组件传来的属性也可以获得父组件v-on事件监听器

路由

vue3和vue2路由常用功能只是写法上有些区别:

vue3的beforeRouteEnter作为路由守卫的示例是因为它在setup语法糖中是无法使用的;大家都知道setup中组件实例已经创建,是能够获取到组件实例的。而beforeRouteEnter是再进入路由前触发的,此时组件还未创建,所以是无法用在setup中的;如果想在setup语法糖中使用则需要再写一个script 如下:

<script>export default { beforeRouteEnter(to, from, next) { // 在渲染该组件的对应路由被 confirm 前调用 next() },};</script>

vue3路由写法:

<script>import { defineComponent } from 'vue'import { useRoute, useRouter } from 'vue-router'export default defineComponent({ beforeRouteEnter (to, from, next) { // 在渲染该组件的对应路由被 confirm 前调用 next() }, beforeRouteLeave ((to, from, next)=>{//离开当前的组件,触发 next() }), beforeRouteLeave((to, from, next)=>{//离开当前的组件,触发 next() }), setup() { const router = useRouter() const route = useRoute() const toPage = () => { router.push(xxx) } //获取params 注意是route route.params //获取query route.query return { toPage } },});</script>

vue2写法:

<script>export default { beforeRouteEnter (to, from, next) { // 在渲染该组件的对应路由被 confirm 前调用 next() }, beforeRouteEnter (to, from, next) { // 在渲染该组件的对应路由被 confirm 前调用 next() }, beforeRouteLeave ((to, from, next)=>{//离开当前的组件,触发 next() }), beforeRouteLeave((to, from, next)=>{//离开当前的组件,触发 next() }), methods:{ toPage(){ //路由跳转 this.$router.push(xxx) } }, created(){ //获取params this.$route.params //获取query this.$route.query }}</script> 总结

vue2和vue3比较还是有很多不一样的地方,比如setup语法糖的形式最为便捷而且更符合开发者习惯,未来vue3将会大面积使用这种规则,这样更加符合开发习惯和降低后续维护的成本,还有目前Vue3已经成为了Vue的默认版本,后续维护应该也会以Vue3为主。希望各位同学赶紧学起来吧~

  
本文链接地址:https://www.jiuchutong.com/zhishi/300589.html 转载请保留说明!

上一篇:图像工程:红外图像增强(红外图像识别算法)

下一篇:Vue中的v-for循环,实现div块的循环生成(vue里的for循环)

  • 联想蓝牙耳机怎么连接手机(联想蓝牙耳机怎么重新配对)

    联想蓝牙耳机怎么连接手机(联想蓝牙耳机怎么重新配对)

  • 华为小艺音响怎么连接无线网(华为小艺音响怎么连接电脑)

    华为小艺音响怎么连接无线网(华为小艺音响怎么连接电脑)

  • 荣耀30s可以自定义语音唤醒词吗(荣耀30s可以自定义铃声吗)

    荣耀30s可以自定义语音唤醒词吗(荣耀30s可以自定义铃声吗)

  • 华为荣耀9xpro什么系统(华为荣耀9xpro是不是5g手机)

    华为荣耀9xpro什么系统(华为荣耀9xpro是不是5g手机)

  • 为什么戴着耳机声音会自己调小(为什么戴着耳机录屏没有声音呢)

    为什么戴着耳机声音会自己调小(为什么戴着耳机录屏没有声音呢)

  • sim卡没有工具包服务是什么意思(sim卡没有工具包服怎么办)

    sim卡没有工具包服务是什么意思(sim卡没有工具包服怎么办)

  • 2个12v电池并联是多少(2个12v电池并联是多少伏)

    2个12v电池并联是多少(2个12v电池并联是多少伏)

  • 朋友圈怎么取消部分人可见(朋友圈怎么取消三天可见)

    朋友圈怎么取消部分人可见(朋友圈怎么取消三天可见)

  • 小米蓝牙耳机199和399的区别(小米蓝牙耳机怎么重新配对)

    小米蓝牙耳机199和399的区别(小米蓝牙耳机怎么重新配对)

  • 快手以前的号怎么找回(快手以前的号怎么注销)

    快手以前的号怎么找回(快手以前的号怎么注销)

  • 支付宝在哪查已婚未婚(支付宝在哪查已婚)

    支付宝在哪查已婚未婚(支付宝在哪查已婚)

  • 访客笔记本是什么意思(电脑访客账户)

    访客笔记本是什么意思(电脑访客账户)

  • 多闪在哪看访客(多闪怎么看访客)

    多闪在哪看访客(多闪怎么看访客)

  • 怎样使脚注数字带圈(脚注的数字怎么加圆圈)

    怎样使脚注数字带圈(脚注的数字怎么加圆圈)

  • 蓝光水平仪与绿光区别(蓝光水平仪与绿光在室外谁更清晰)

    蓝光水平仪与绿光区别(蓝光水平仪与绿光在室外谁更清晰)

  • 小米移动电源3高配版能上飞机吗(小米移动电源3 30000毫安)

    小米移动电源3高配版能上飞机吗(小米移动电源3 30000毫安)

  • 苹果x可以双卡吗(苹果x可以双卡双待吗手机)

    苹果x可以双卡吗(苹果x可以双卡双待吗手机)

  • 手机前置摄像头和后置哪个真实(手机前置摄像头进水怎么去水雾)

    手机前置摄像头和后置哪个真实(手机前置摄像头进水怎么去水雾)

  • 丐版显卡什么意思(啥叫丐版显卡)

    丐版显卡什么意思(啥叫丐版显卡)

  • 华硕笔记本预装win8改win7系统完美解决方案(全程图解)(华硕笔记本预装win10改装win7,有图文教程)

    华硕笔记本预装win8改win7系统完美解决方案(全程图解)(华硕笔记本预装win10改装win7,有图文教程)

  • win11任务栏无反应怎么办?win11任务栏无反应解决方法(win11任务栏失灵)

    win11任务栏无反应怎么办?win11任务栏无反应解决方法(win11任务栏失灵)

  • 随机梯度下降算法 入门介绍(最通俗易懂)(随机梯度下降算法优缺点)

    随机梯度下降算法 入门介绍(最通俗易懂)(随机梯度下降算法优缺点)

  • 集合框架——LinkedList集合源码分析(集合框架有何好处)

    集合框架——LinkedList集合源码分析(集合框架有何好处)

  • 应收留抵税额退税款属于哪类科目
  • 总账会计和全盘会计的区别
  • 征信高风险是什么意思
  • 建筑业老项目如何界定
  • 付钱给对方会计分录
  • 契税为什么计入成本
  • 向银行办理托收手续记什么科目
  • 以前年度少计提费用
  • 预缴的增值税怎么算
  • 公司租赁的车辆发生的费用都可以报销吗?
  • 未开票收入结转成本年利润怎么算
  • 非盈利企业账务处理
  • 公司车辆计提是含税还是不含税?
  • 小规模纳税人未开票收入填在哪里
  • 个税公司承担怎么做账计入其他应收款怎么平账
  • 2018年建筑增值税税率表
  • 购买国债兑现时要交税吗
  • 企业转让无形资产要交增值税吗
  • 退进项税留抵是什么意思
  • 增量留底税额怎么进行确定
  • 个体工商户核定征收怎么报税
  • 补发上月工资如何计税
  • 赊销商品填制什么科目
  • 期末增值税进项税大于销项税的金额计入哪里
  • windows设备超时是什么意思
  • hhupd.exe
  • 小规模纳税人的企业所得税怎么算
  • 未取得发票的工程预付款怎么入账
  • url示例
  • mac配置node环境
  • 有趣的css代码
  • 记账凭证账务处理步骤
  • 汇算清缴期结束后,税务机关发现企业
  • php自动执行函数
  • 原版锯齿
  • 支付给个人的劳务报酬代扣个税
  • PHP基于什么语言
  • 黄金海岸冲浪者沙滩
  • it云化
  • 企业购买机器设备没有发票怎么办
  • 企业所得税品目应纳税所得额未申报
  • java守护线程和本地线程区别
  • 烟草专卖生产企业许可证
  • sqlserver2005 TSql新功能学习总结(数据类型篇)
  • mysql 中文排序是什么规则
  • 新成立小规模纳税人税收优惠政策
  • 民办非盈利组织注销了在哪登报
  • 固定资产备抵科目有哪些
  • 营改增后,建筑行业与供应商签合同才怎样签没风险?
  • 吸收合并需要编制
  • 外贸出口企业申报年月怎么填
  • 以货换货合同
  • 权益法的股权比例
  • 增值税明细账怎么结账
  • 低预算高要求
  • 外资企业计提盈余公积吗
  • sql数据库对象
  • macbookair怎么开启
  • pe系统找不到系统
  • win8安全模式黑屏
  • centos sudoers
  • centos8 redhat
  • 王牌竞速 小米
  • nalntsrv.exe - nalntsrv是什么进程 有什么用
  • node.js安装后自带哪个工具
  • dos echo命令
  • 游戏开发吧
  • 炉石传说架是什么意思
  • npm 发布组件
  • validateform
  • node.js操作mssql
  • 下载随手笔记
  • unity 2danimation
  • js实现vue
  • python dict.get()和dict['key']的区别详解
  • uk开票软件如何赋码
  • 应交增值税减免税款借贷方向
  • 小规模纳税人可以用专票抵扣税吗
  • 增值税发票勾选是什么意思
  • 广东2020医保缴费要多少
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设