$router:
从上面可以看出$router是全局 router 的实例,通过 vue 根实例中注入 router 实例,然后再注入到每个子组件,从而使整个应用都有路由功能。包含了一些路由的跳转方法,钩子函数,属性和对象(比如 history 对象)等,任何页面也都可以调用其 push(), replace(), go() 等方法。
通过$router.push()方法可以向history栈中添加一个路由,从而实现切换路由。
通过$router.replace()方法可以替换路由,没有历史记录。
$route
$route是当前激活路由的信息对象。每个对象都是局部的,可以获取当前路由的 path, name, params, query 等属性。
通过$route可以获取到一些当前路由的信息:
$route.path
//字符串,等于当前路由对象的路径,会被解析为绝对路径,如 "/home/news" 。
$route.params
//对象,包含路由中的动态片段和全匹配片段的键值对。
$route.query
//对象,包含路由中查询参数的键值对。例如,对于 /home/news/detail/01?favorite=yes ,会得到$route.query.favorite == 'yes' 。
$route.router
//路由规则所属的路由器(以及其所属的组件)。
$route.matched
//数组,包含当前匹配的路径中所包含的所有片段所对应的配置参数对象。
$route.name
//当前路径的名字,如果没有使用具名路径,则名字为空