初识\(router和\)route

一、前言

​ vue框架中单页面富应用可以说是其最大的优点功能之一了,应用起来简单直观,说起单页面富应用那就必须得联想到\(router**,但是在项目开发过程中我们还会遇到另一个和它长得很像的东西,那就是**\)route,两者就仅仅相差一个字母,但是它们之间的功能却有着天大的区别,下面我们来看看它们各自的作用和都有哪些不同吧!

二、单页面Web应用(SPA)

​ 首先,我们要想了解vue-router,那就得先了解什么是SPA,单页Web应用(single page web application,SPA),就是只有一张Web页面的应用,是加载单个HTML 页面并在用户与应用程序交互时动态更新该页面的Web应用程序,即,在我们的单页面应用中是不存在页面的跳转的,它只是以某种方式将我们页面内的内容替换掉而已,如:我们从首页跳转到用户页,这个过程并非是真正地执行了的页面的跳转,其实他还是那个最开始的那个页面,通俗说,在我们的vue框架中就只有一个HTML文件。而替换到和更新到所需页面(组件),就可以通过使用vue-router中的\(router和\)route来实现。

三、两者的区别

  1. router

    • router翻译为“路由”,应用于计算机网络中,路由是把信息从源穿过网络传递到目的的行为,经历了哪些网络节点。在单页应用中,它表示页面的更新过程中所经历的路径变化。

    • $router对象是全局路由的实例,是router构造方法的实例,我们可以在任何组件中通过使用ths来引用它。

  2. route

    • $route对象表示当前的路由信息,包含了当前 URL 解析得到的信息。包含当前的路径,参数,query对象等。

四、两者的对象属性和方法

$router

  1. push( push方法其实和是等同的)

    • 字符串this.$router.push('home')
    • 对象this.$router.push({path:'home'})
    • 命名的路由this.$router.push({name:'user',params:{userId:123}})
    • 带查询参数,变成 /register?plan=123this.$router.push({path:'register',query:{plan:'123'}})
  2. go
    • 前进或者后退this.$router.go(number) ,number为正数时表示前进,为负数时表示后退
  3. replace
    • push方法会向 history 栈添加一个新的记录,而replace方法是替换当前的页面,不会向 history 栈添加一个新的记录,即使用replace方法时,不能返回到上一个页面。
  4. 通过控制台了解更多

$route

  1. $route.path 字符串,对应当前路由的路径,总是解析为绝对路径,如"/foo/bar"。
  2. $route.params 一个 key/value 对象,包含了 动态片段 和 全匹配片段, 如果没有路由参数,就是一个空对象。
  3. **\(route.query** 一个 key/value 对象,表示 URL 查询参数。 例如,对于路径 /foo?user=1,则有\)route.query.user == 1, 如果没有查询参数,则是个空对象。
  4. $route.hash 当前路由的hash值 (不带#) ,如果没有 hash 值,则为空字符串。锚点*
  5. $route.fullPath 完成解析后的 URL,包含查询参数和hash的完整路径。
  6. $route.matched 数组,包含当前匹配的路径中所包含的所有片段所对应的配置参数对象。
  7. $route.name 当前路径名字
  8. $route.meta 路由元信息
  9. 控制台了解更多

初识$router和$route的更多相关文章

  1. 理解OpenShift(1):网络之 Router 和 Route

    理解OpenShift(1):网络之 Router 和 Route 理解OpenShift(2):网络之 DNS(域名服务) 理解OpenShift(3):网络之 SDN 理解OpenShift(4) ...

  2. 【react router路由】<Router> <Siwtch> <Route>标签

    博客 https://www.jianshu.com/p/ed5e56994f13?from=timeline 文档 http://react-guide.github.io/react-router ...

  3. vue中的router和route有什么区别?

    我只知道前者一般用在跳转路由的时候,push一个url, 而后者则用来存储路由跳转过程中存储的各种数据. 话不多说,这篇博客讲的比较详细,可以参考一下. vue2.0中的$router 和 $rout ...

  4. Vue中美元$符号的意思与vue2.0中的$router 和 $route的区别

    vue的实例属性和方法 除了数据属性,Vue 实例还暴露了一些有用的实例属性与方法.它们都有前缀 $,以便与用户定义的属性区分开来.例如: var data = { a: 1 } var vm = n ...

  5. 浅谈vue$router 和 $route的区别

    最近在学习vue的单页面应用开发,需要vue全家桶,其中用到了VueRouter,在路由的设置和跳转中遇到了两个对象$router 和 $route ,有些傻傻分不清,后来自己结合网上的博客和自己本地 ...

  6. $router和$route的区别,路由跳转方式name 、 path 和传参方式params 、query的区别

    一.$router和$route的区别 $router : 是路由操作对象,只写对象$route : 路由信息对象,只读对象 例子://$router操作 路由跳转 this.$router.push ...

  7. vue中的$router 和 $route的区别

    最近在学习vue的单页面应用开发,需要vue全家桶,其中用到了VueRouter,在路由的设置和跳转中遇到了两个对象$router 和 $route ,有些傻傻分不清,后来自己结合网上的博客和自己本地 ...

  8. 【面试题】Vue中的$router 和 $route的区别

    Vue中的$router 和 $route的区别 点击视频讲解更加详细 this.$route:当前激活的路由的信息对象.每个对象都是局部的,可以获取当前路由的 path, name, params, ...

  9. [Angular2 Router] CanActivate Route Guard - An Example of An Asynchronous Route Guard

    In this tutorial we are going to learn how we can to configure an can activate route guard in the An ...

随机推荐

  1. Solution -「Gym 102759C」Economic One-way Roads

    \(\mathcal{Description}\)   Link.   给定一个含 \(n\) 个点 \(m\) 条边的简单无向图,每条边的两种定向方法各有权值,求使得图强连通且定向权值和最小的方法. ...

  2. Spring Boot内置Tomcat

    Spring Boot默认支持Tomcat/Jetty/Undertow作为底层容器.在之前实战相关的文章中,可以看到引入spring-boot-starter-web就默认使用tomcat容器,这是 ...

  3. 解决UIWebView内存不释放问题

    走访很多朋友,查阅了很多资料发现UIWebView这尼玛就是个坑,有人说是sdk自带的bug....... 所以一个新的方法诞生了#import <WebKit/WebKit.h> WKW ...

  4. 图的深度遍历(C语言)邻接矩阵表示

    知识讲解: 图的遍历分为两种,深度遍历与广度遍历.这里讨论深度遍历. 以上图为例讨论图(图片来自<算法笔记>)的深度遍历: 设图形的顶点数为n. 先从顶点v0开始,用一个数组vis[n]来 ...

  5. C#的in/out关键字与协变逆变

    C#提供了一组关键字in&out,在泛型接口和泛型委托中,若不使用关键字修饰类型参数T,则该类型参数是不可变的(即不允许协变/逆变转换),若使用in修饰类型参数T,保证"只将T用于输 ...

  6. Bugku--web-wp

    Bugku地址:https://ctf.bugku.com/challenges 0x01 web2 地址:http://123.206.87.240:8002/web2/ ,查看源码 web2 0x ...

  7. 当TIME_WAIT状态的TCP正常挥手,收到SYN后…

    摘要:今天就来讨论下这个问题,在TCP正常挥手过程中,处于TIME_WAIT状态的连接,收到相同四元组的SYN后会发生什么? 本文分享自华为云社区<在TIME_WAIT状态的TCP连接,收到SY ...

  8. Centos7使用kubeadm安装1.23.1版本的k8s集群

    系统环境 #cat /etc/redhat-release CentOS Linux release 7.6.1810 (Core) #Linux内核一定要大约等于3.10,也就是centos版本要大 ...

  9. Java课程设计---新建项目及导入如何jar包

    1.新建项目 2.添加lib并导入mysql驱动jar包 3.项目目录结构介绍 为了将项目划分清楚,下面将新建如下几个包

  10. Java、Python语法区别,不断更新

    基本语句.文件方面 Java中的字符是单引号,字符串是双引号:Python则是单双都可以 Java语句结束有分号;,Python没有(写分号也正确) Java中程序执行需要有main函数,Python ...