Vue中$route和$router

今天我们来探讨一下Vue中 $route 和 $router 两者之间到底有什么区别,我们可以简单理解区别为:  $router 相当于路由器,$route 相当于路由。在Vue3中,可以使用 useRouteuseRouter 这两个函数代替 $route$router。

因此$router是用来操作路由的,$route 是用来获取路由信息的。

一、$router

$router是VueRouter的一个对象,通过Vue.use(VueRouter)和Vue构造函数得到一个router的实例对象,这个对象中是一个全局的对象,他包含了所有的路由,包含了许多关键的对象和属性。

举例说明:

1.push:跳转到指定url路径,并在history栈中添加一个记录,点击后退会返回到上一个页面。

<script setup>
import { useRouter } from 'vue-router'
const router = useRouter()
const goToRoute=()=>{
    router.push('/your-route-path')
}
</script>

 接收的参数有

  • 字符串路径:直接提供目标路径字符串。
  • 对象描述:提供一个描述目标位置的对象

2.go:用于在路由历史记录中向前或向后导航,可以接收一个整数作为参数,表示要前进或后退的步数。

// 后退一步
router.go(-1)
// 前进两步
router.go(2)

3.replace:router.replace() 方法与 router.push() 类似,用于更改路由,但有一个重要的区别:router.replace() 不会在历史记录中留下轨迹,而是替换当前的路由。

router.replace('/your-route-path')

二、$route

$route 是 Vue Router 提供的一个全局对象,用于访问当前路由的一些信息,比如路径、参数、查询参数等。

属性:

  • name: 当前路由的名称。
  • meta: 元信息,可以在路由配置中设置。
  • path: 当前路由的路径。
  • hash: 当前路由的哈希值。
  • query: 当前路由的查询参数。
  • params: 路由参数,例如动态路径参数。
  • redirectedFrom: 如果路由是通过重定向跳转而来,该属性会包含来源路由的信息。

 

<script setup>
import { useRoute } from 'vue-router'
const route = useRoute()
    console.log(route.name) // 当前路由的名称
    console.log(route.meta) // 元信息
    console.log(route.path) // 当前路由的路径
    console.log(route.hash) // 当前路由的哈希值
    console.log(route.query) // 当前路由的查询参数
    console.log(route.params) // 路由参数
    console.log(route.fullPath) // 完整路径
    console.log(route.matched) // 匹配当前路由的路由记录数组
    console.log(route.redirectedFrom) // 来源路由信息
</script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

进击中的大学生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值