181、vue-Router

87133050 2020-02-24

1、构建选项
(1)routes
(2)mode,配置路由模式
(3)base,应用的基路径
(4)linkActiveClass,默认的激活的class
(5)linkExactActiveClass,默认的精确激活的class
(6)scrollBehavior
2、实例属性
(1)router.app,配置了router的Vue根实例。
(2)router.mode,路由使用的模式。
(3)router.currentRoute,当前路由对应的路由信息对象。
3、实例方法
(1)router.beforeEach
(2)router.beforeResolve
(3)router.afterEach
(4)router.push(location, onComplete?, onAbort?);router.push(location).then(onComplete).catch(onAbort)
(5)router.replace(location, onComplete?, onAbort?);router.replace(location).then(onComplete).catch(onAbort)
(6)router.go
(7)router.back
(8)router.forward
(9)router.getMatchedComponents
(10)router.resolve
(11)router.addRoutes
(12)router.onReady
(13)router.onReady(callback, [errorCallback])
(14)router.onError
(15)router.onError(callback)
4、路由对象:
一个路由对象(route object)表示当前激活的路由的状态信息。包含了当前URL解析得到的信息,还有URL匹配到的路由记录(route records)。路由对象是不可变的,每次成功的导航后都会产生一个新的对象。
路由对象出现在多个地方:在组件内,即this.$route;在$route观察者回调内;router.match(location)的返回值。
(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,类型: string,完成解析后的 URL,包含查询参数和 hash 的完整路径。
(6)$route.matched,类型: Array<RouteRecord>,一个数组,包含当前路由的所有嵌套路径片段的路由记录。路由记录就是routes配置数组中的对象副本(还有在children数组)。
const router = new VueRouter({
  routes: [
    // 下面的对象就是路由记录
    {
      path: ‘/foo‘,
      component: Foo,
      children: [
        // 这也是个路由记录
        { path: ‘bar‘, component: Bar }
      ]
    }
  ]
})
当 URL 为 /foo/bar,$route.matched 将会是一个包含从上到下的所有对象 (副本)。
(1)$route.name,当前路由的名称,如果有的话。(查看命名路由)
(2)$route.redirectedFrom,如果存在重定向,即为重定向来源的路由的名字。(参阅重定向和别名)
5、组件注入
注入的属性。通过在Vue根实例的router配置传入router实例,下面这些属性成员会被注入到每个子组件。
(1)this.$router:router实例。
(2)this.$route:当前激活的路由信息对象。这个属性是只读的,里面的属性是immutable(不可变)的,不过你可以watch(监测变化)它。
增加的组件配置选项
(3)beforeRouteEnter
(4)beforeRouteUpdate
(5)beforeRouteLeave

相关推荐