vue3路由相关使用差异

本文概述了Vue3中关于<router-view>、<keep-alive>和<transition>的使用变化,介绍了动态路由添加的更新方法,以及beforeEach路由守卫的调整。重点讲解了从Vue2到Vue3的迁移技巧和新特性。
摘要由CSDN通过智能技术生成

在使用vue3开发过程中,遇到除了结构以及数据双向绑定方式等一些显而易见的不同,还有下面一些区别:

1. <router-view>、<keep-alive> 和 <transition>
(可参考官网介绍https://router.vuejs.org/zh/guide/migration/#router-view-、-keep-alive-和-transition)

  • vue3中transition和keep-alive必须在router-view内部,通过v-solt使用:
<router-view v-slot="{ Component }">
  <transition>
    <keep-alive>
      <component :is="Component" />
    </keep-alive>
  </transition>
</router-view>
  • vue2中通常使用 keep-alive包裹router-view
<transition>
  <keep-alive>
    <router-view></router-view>
  </keep-alive>
</transition>

2. vue-router 动态路由的添加

  • vue-router3x中:可以通过router.addRoutes(routes: Array)方式添加路由数组,官网现在标识“已废弃:使用 router.addRoute() 代替。”了;
  • vue-router4x中使用:
// 添加一个新的路由
// 如果有parentName参数,则其作为已有路由子路由
addRoute(parentName, route): () => void

3. 路由守卫beforeEach

  • vue-router3x:钩子函数有三个参to、from、next,next是必须的,导航的跳转依赖next,在各种判断中必须将next补全
  • vue-router4x:next是可选参数,路由的跳转依据return返回值,返回值可以是false或路由地址(这种情况与next参数用法类似),如果没有返回值、defined或为true,导航也是有效的。因此在处理各种判断时,可以不考虑返回to的情况了,简化代码。(点击这里查看官方介绍
    注意:在使用return方式时,如果判断里面有异步,需要await后再return
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值