vue $router和$route的区别详解

yizhihongxing

下面是详细讲解“vue $router和$route的区别详解”的完整攻略:

背景

Vue.js 是一个轻量级的 MVVM 前端框架,常用的路由管理器是 vue-router。在使用 vue-router 过程中,可能会涉及到两个关键对象:$router 和 $route。这两个对象貌似很相似,但实际上有着明确的区别。本文将详细讲解两者的区别和应用场景。

$router

在 Vue.js 组件中,可以通过这个对象访问到 VueRouter 实例(路由管理器),从而可以方便地执行一些基于路由跳转的方法,如push, replace, go等,使用 $router 对象的优点:

  • $router 可以很方便地执行路由跳转的方法。
  • $router 对象仅用于在组件代码中调用路由方法,因此较为轻量。

示例:跳转到命名路径为/home的页面

// 通过 this.$router 访问路由(VueRouter实例)
this.$router.push({ name: 'home' });

$route

$route 是当前路由的信息对象,包含当前路由的路径、参数、查询参数等,使用 $route 对象的优点:

  • $route 是只读的,不支持修改。
  • $route 可以在 computed 中进行响应式更新,方便的获得当前路由变化后的信息。

示例:获取当前路径参数

// 通过 this.$route 访问当前路由信息
console.log(this.$route.params.id);

总结

$router 是 vue-router 的实例对象,提供了一些基于路由跳转的方法,如push, replace, go等。常用于在组件代码中执行路由跳转的方法。

$route 是当前路由的信息对象,包含当前路由的路径、参数、查询参数等。$route 是只读的,不支持修改,可以在 computed 中进行响应式更新,方便的获得当前路由变化后的信息。

除了上述区别,$router 和 $route 还有很多的实际应用场景,比如:

  • 在全局导航守卫中使用 $router 拦截路由跳转。
  • 在页面的 computed 中使用 $route 监听路由变化。
  • 在组件内部使用 $router 跳转路由,同时又使用 $route 获得当前路由信息。

这里只是简单举了几个例子,还有很多其它的应用场景,需要在实际业务场景中灵活运用。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:vue $router和$route的区别详解 - Python技术站

(0)
上一篇 2023年6月11日
下一篇 2023年6月11日

相关文章

  • 跨站攻击之实现Http会话劫持的手法

    跨站攻击(Cross-Site Attack)又称为XSS攻击,是指攻击者在网页中插入恶意脚本,使受害者在访问网页时,网页中的恶意脚本被执行从而攻击受害者。跨站攻击有很多种形式,其中之一就是Http会话劫持,下面我们来看看这种手法的攻略。 什么是Http会话劫持 Http会话劫持是指攻击者在网站上注入一段代码,通过劫持用户已经建立的会话从而获取用户的权限、获…

    JavaScript 2023年6月11日
    00
  • Web Animations API实现一个精确计时的时钟示例

    要实现一个精确计时的时钟示例,我们可以使用Web Animations API。这项API可以让我们通过JavaScript来控制CSS动画,而且可以精确定时。下面是实现的步骤: 步骤一:编写HTML代码 编写一个包含时钟的div元素和三个子元素的HTML结构,分别对应时针、分针和秒针。 <div class="clock">…

    JavaScript 2023年6月11日
    00
  • 一步步教你用js简单实现新年倒计时

    下面是“一步步教你用js简单实现新年倒计时”的完整攻略,内容包含以下几个步骤: 1. 创建HTML页面结构 首先,在HTML页面中创建元素用于展示倒计时的时间。可以创建以下几个元素: 一个用于显示天数的<span>元素,例如<span id=”days”></span>; 一个用于显示小时数的<span>元素,…

    JavaScript 2023年6月11日
    00
  • JS获取浏览器语言动态加载JS文件示例代码

    我会详细讲解“JS获取浏览器语言动态加载JS文件示例代码”的完整攻略,并为你提供两个示例说明。 1. JS获取浏览器语言的方法 在JS中,可以通过navigator.language属性获取浏览器的默认语言。该属性返回一个字符串,代表浏览器当前使用的语言。例如,如果浏览器使用的是英文,那么该属性的值就是en-US。 获取浏览器语言的示例代码如下: var b…

    JavaScript 2023年5月27日
    00
  • js与jQuery实现的兼容多浏览器Ajax请求实例

    针对“js与jQuery实现的兼容多浏览器Ajax请求实例”这一主题,我将提供以下完整攻略: 步骤1:引入jQuery库到你的项目中 使用jQuery库的最简单方式是从官网下载或链接CDN,并在你的项目中引入。以下是引入jQuery的示例代码: <!DOCTYPE html> <html> <head> <title…

    JavaScript 2023年6月11日
    00
  • JS实现电子时钟入门操作

    JS实现电子时钟是前端开发中一个常见的功能,下面我来为大家介绍一下实现步骤: 步骤一:创建HTML结构 首先需要建立html结构,在标签内添加一个 标签用来存放时钟显示的部分,同时还需要使用CSS样式对时钟进行美化。示例代码如下: <!DOCTYPE html> <html> <head> <meta charset…

    JavaScript 2023年6月11日
    00
  • html5指南-7.geolocation结合google maps开发一个小的应用

    下面是关于“HTML5指南-7.geolocation结合google maps开发一个小的应用”的详细攻略: 一、什么是geolocation? Geolocation是HTML5的一个新特性,它能够让我们通过浏览器获取到用户的地理位置信息,以及海拔高度和速度等信息。 二、如何结合google maps开发应用? 如果想要将geolocation和goog…

    JavaScript 2023年6月11日
    00
  • js删除所有的cookie的代码

    要删除所有的cookie,可以使用以下代码: // 获取所有的cookie var cookies = document.cookie.split(";"); // 遍历所有cookie,逐个删除 for (var i = 0; i < cookies.length; i++) { var cookie = cookies[i]; …

    JavaScript 2023年6月11日
    00
合作推广
合作推广
分享本页
返回顶部