路由对象
1,路由对象出现在多个地方:
① 在组件内,this.$route
② 在 $route 观察者回调内
③ router.match(location) 的返回值
④ 路由守卫的参数
⑤ scrollBehavior 方法的参数
2,路由对象属性
① $route.path,字符串类型,对应当前路由的路径,总是解析为绝对路径
② $route.params,对象类型,一个 key/value 对象,包含了动态片段和全匹配片段,如果没有路由参数,就是一个空对象
③ $route.query:一个 key/value 对象,表示URL查询的参数,例如,对于路径 /user ? username = userA,则有 $route.query.username == userA,如果没有查询参数,则是个空对象
④ $route.hash:字符串类型,当前路由的 hash 值(带#),如果没有 hash 值,则为空字符串
⑤ $route.fullPath:字符串类型,完成解析后的URL,包含查询参数和 hash 的完整路径
⑥ $route.matched:一个数组,包含当前路由的所有嵌套片段的路由记录,路由记录就是routes 配置数组中的对象副本(还有在 children 数组)
⑦ $route.name,当前路由的名称,如果有命名路由的话
⑧ $route.redirectedFrom,如果存在重定向,即为重定向来源路由的名字
3,注入的属性
通过在Vue的根实例的 router 配置传入 router 实例,下面这些属性成员会被注入到每个子组件
this.$router,router 实例
this.$route,当前激活的路由信息对象,这个属性只读的,里面的属性不可变的,但可以 watch 它。
4,增加的组件配置选项
beforeRouteEnter
beforeRouteUpdate
beforeRouteLeave