Vue中$router和$route的区别详解

 更新时间:2023年06月16日 11:31:40   作者:程序媛徐师姐  
在 Vue.js 中,$router 和 $route 是两个常用的对象,用于处理路由相关的操作,下面小编就来和大家介绍一下$router 和 $route 的区别以及如何使用它们吧

在 Vue.js 中,$router 和 $route 是两个常用的对象,用于处理路由相关的操作。在本文中,我们将介绍 $router 和 $route 的区别,并且演示如何使用它们。

$router 和 $route 的区别

在 Vue.js 中,$router 和 $route 分别代表了路由器和当前路由。虽然它们都与路由相关,但是它们的作用不同。

$router

$router 是 Vue.js 中的路由器对象,用于管理路由。它包含了许多方法,例如 push、replace、go 等等,用于在路由之间进行导航。下面是一些常用的方法:

  • push(location: RawLocation, onComplete?: Function, onAbort?: ErrorHandler): void:跳转到一个新的页面,会向 history 栈添加一个新的记录;
  • replace(location: RawLocation, onComplete?: Function, onAbort?: ErrorHandler): void:跳转到一个新的页面,不会向 history 栈添加一个新的记录,而是替换当前的记录;
  • go(n: number): void:在 history 栈中向前或向后移动 n 步;
  • back(): void:向后退一步,相当于 go(-1);
  • forward(): void:向前进一步,相当于 go(1)。

除了上述的方法以外,$router 还有一些其他的属性和方法,例如 currentRoute、beforeEach、afterEach 等等。这些属性和方法可以让我们更加方便地管理路由。

$route

$route 是 Vue.js 中的当前路由对象,用于获取当前路由的信息。它包含了许多属性,例如 path、params、query、hash 等等,用于描述当前路由的状态。下面是一些常用的属性:

  • path:当前路由的路径;
  • params:当前路由的参数,例如 /user/:id 中的 id;
  • query:当前路由的查询参数,例如 /user?id=123 中的 id;
  • hash:当前路由的哈希值,例如 /user#profile 中的 profile。

除了上述的属性以外,$route 还有一些其他的属性和方法,例如 name、meta、fullPath 等等。这些属性和方法可以让我们更加方便地获取当前路由的信息。

示例代码

下面是一个完整的示例代码,演示了如何使用 $router 和 $route。在该示例中,我们定义了两个路由,分别是 /home 和 /about,并且使用了 $router 和 $route 来管理路由和获取路由信息。

<template>
  <div>
    <h1>{{ title }}</h1>
    <p>Current route: {{ $route.path }}</p>
    <ul>
      <li>
        <router-link to="/home">Home</router-link>
      </li>
      <li>
        <router-link to="/about">About</router-link>
      </li>
    </ul>
    <router-view></router-view>
  </div>
</template>
<script>
export default {
  data() {
    return {
      title: 'Vue.js Router Demo',
    };
  },
};
</script>

在上面的代码中,我们使用了 <router-link> 组件来定义两个路由链接,分别是 /home 和 /about。当用户点击链接时,会自动跳转到相应的页面,并且更新 $route 对象的相关信息。在 <router-view> 组件中,我们使用了嵌套路由,根据当前路由显示不同的组件。

下面是关于 $router 和 $route 的一些常用操作:

// 跳转到一个新的页面
this.$router.push('/home');
// 替换当前页面
this.$router.replace('/about');
// 向前退一步
this.$router.back();
// 向前进一步
this.$router.forward();
// 获取当前路由的路径
console.log(this.$route.path);
// 获取当前路由的参数
console.log(this.$route.params.id);
// 获取当前路
路由的查询参数
console.log(this.$route.query.id);
// 获取当前路由的哈希值
console.log(this.$route.hash);

总结

在本文中,我们介绍了 Vue.js 中的 $router 和 r o u t e ,以及它们的区别。 route,以及它们的区别。route,以及它们的区别。router 是用于管理路由的对象,包含了许多方法和属性,用于在路由之间进行导航。$route 是用于获取当前路由信息的对象,包含了许多属性和方法,用于描述当前路由的状态。

为了更好地了解 $router 和 $route 的使用,我们演示了一个完整的示例代码,包含了路由链接、嵌套路由、路由导航等等。

到此这篇关于Vue中$router和$route的区别详解的文章就介绍到这了,更多相关Vue $router $route内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Vue Router 返回后记住滚动条位置的实现方法

    Vue Router 返回后记住滚动条位置的实现方法

    使用 Vue router 创建 SPA(Single Page App),往往有这种需求:首页是列表页,点击列表项进入详情页,在详情页点击返回首页后,希望看到的是,首页不刷新,并且滚动条停留在之前的位置,这篇文章主要介绍了Vue Router 返回后记住滚动条位置的实现方法,需要的朋友可以参考下
    2023-09-09
  • vue.js 实现a标签href里添加参数

    vue.js 实现a标签href里添加参数

    今天小编就为大家分享一篇vue.js 实现a标签href里添加参数,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11
  • vue同时触发两个函数的情况

    vue同时触发两个函数的情况

    这篇文章主要介绍了vue同时触发两个函数的情况,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-04-04
  • vue中 数字相加为字串转化为数值的例子

    vue中 数字相加为字串转化为数值的例子

    今天小编就为大家分享一篇vue中 数字相加为字串转化为数值的例子,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11
  • Vue的异步渲染axios问题

    Vue的异步渲染axios问题

    这篇文章主要介绍了Vue的异步渲染axios问题,具有很好的参考价值,希望对大家有所帮助。
    2023-03-03
  • vue3中如何使用codemirror6增加代码提示功能

    vue3中如何使用codemirror6增加代码提示功能

    这篇文章主要给大家介绍了关于vue3中如何使用codemirror6增加代码提示功能的相关资料,Codemirror是一个不错的Web代码编辑库,可以方便简单的集成,需要的朋友可以参考下
    2023-08-08
  • vue3自定义hooks/可组合函数方式

    vue3自定义hooks/可组合函数方式

    这篇文章主要介绍了vue3自定义hooks/可组合函数方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-05-05
  • 利用Vue3实现鼠标跟随效果

    利用Vue3实现鼠标跟随效果

    在Web开发领域,鼠标跟随效果是一种能显著提升页面交互性、增加动态感与趣味性的常见方式,下面我们看看如何使用Vue3实现鼠标跟随效果吧
    2024-11-11
  • 解决vue axios的封装 请求状态的错误提示问题

    解决vue axios的封装 请求状态的错误提示问题

    今天小编就为大家分享一篇解决vue axios的封装 请求状态的错误提示问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-09-09
  • 在Vue中使用WebScoket 会怎么样?

    在Vue中使用WebScoket 会怎么样?

    这篇文章主要介绍了在Vue中使用WebScoket,网络的不稳定而断开连接,webscoket不会出现异常,下面就一起进入文章看看吧
    2022-01-01

最新评论