+
95
-

回答

一、$route

$route对象表示当前的路由元信息。

我们经常会用到路由信息,比如:

$route.path
字符串,等于当前路由对象的路径,会被解析为绝对路径,如 “/shops/goods” 。

$route.params
对象,包含路由中的动态片段和全匹配片段的键值对 。

$route.query

对象,包含路由中查询参数的键值对。例如,对于 /home/news/detail/01?favorite=yes ,会得到$route.query.favorite == ‘yes’ 。

$route.router
路由规则所属的路由器(以及其所属的组件)。

$route.matched
数组,包含当前匹配的路径中所包含的所有片段所对应的配置参数对象。

$route.name
当前路径的名字,如果没有使用具名路径,则名字为空。

所以我们可以通过$route.来获取到路由里的这些信息为自己所用。这就是 $route!

二、$router

$router对象是全局路由ueRouter的实例,是router构造方法的实例。

路由实例常用方法:

$router.push('home')

页面跳转

// 字符串
this.$router.push('home')
// 对象
this.$router.push({ path: 'home' })
// 命名的路由
this.$router.push({ name: 'user', params: { userId: 123 }})
// 带查询参数,变成 /register?plan=123
this.$router.push({ path: 'register', query: { plan: '123' }})
注意:push方法的跳转会向 history 栈添加一个新的记录,当我们点击浏览器的返回按钮时可以看到之前的页面。

$router.go(-1)
页面前进或者后退
this.$router.go(-1) // 后退

$router.replace('/')

//push方法会向 history 栈添加一个新的记录,而replace方法是替换当前的页面,
注意:replace不会向 history 栈添加一个新的记录

// 一般使用replace来做404页面

this.$router.replace('/')


网友回复

我知道答案,我要回答