vue路由——总结篇(三)

上一篇总结,我们总结了路由对象的构建选项。那么这一章我们去了解一下路由对象的实例属性和实例方法。

实例属性

Router 的实例属性是在 Router 对象创建完成之后,在对象调用的属性,只有三个实例属性:

  1. router.app:配置了 router 的 Vue 根实例
  2. router.mode:路由使用的模式,对应构建选项中的mode选项
  3. router.currentRoute:当前路由对应的路由信息对象。路由对象详情见下。

实例方法

  1. router.beforeEachrouter.beforeResolverouter.afterEach:这三个方法主要用于导航守卫。具体的使用规则见进阶篇(一)
  2. router.pushrouter.replacerouter.go:这三个方法主要用于动态的导航到一个新 URL。具体的使用规则见基础篇(五)
  3. router.backrouter.forward:这两个方法和JavaScript中 window.history对象的 forwardback方法对应。 router.back在history记录中后退一步,等效于go(-1);router.forward在history记录中前进一步,等效于go(1)
  4. router.addRoutes:动态添加更多的路由规则,参数必须时一个符合routes构建选项要求的数组;
  5. router.onReady(callback,errorCallback):在路由完成初始导航时调用,这意味着它可以解析所有的异步进入钩子和路由初始化相关联的异步组件。两个参数都是回调函数,第一个在运行成功之后调用,第二个在初始化路由解析运行出错时被调用;
  6. router.onError(callback):注册一个回调,该回调会在路由导航过程中出错时被调用;
  7. router.resolve(location, current?, append?):解析一个URL地址;

路由对象

一个路由对象 (route object) 表示当前激活的路由的状态信息,包含了当前 URL 解析得到的信息,还有 URL 匹配到的路由记录 (route records)。路由对象是不可变 (immutable) 的,每次成功的导航后都会产生一个新的对象。

路由对象出现的地方
  1. 在组件内部中,可以使用this.$route调用,这个表示当前激活的路由信息对象
  2. 在导航守卫中,参数from和to都是路由对象
  3. 在Router 构建选项 scrollBehavior 中参数 from和 to 都是路由对象
路由对象属性
  1. $route.path:字符串,对应当前路由的路径,总是解析为绝对路径,如 “/foo/bar”。
  2. $route.params:一个 key/value 对象,包含了动态片段和全匹配片段,如果没有路由参数,就是一个空对象。
  3. $route.query:一个 key/value 对象,表示 URL 查询参数,如果没有查询参数,则是个空对象。
  4. $route.hash:当前路由的 hash 值 (带 #) ,如果没有 hash 值,则为空字符串。
  5. $route.fullPath:完成解析后的 URL,包含查询参数和 hash 的完整路径。
  6. $route.matched:一个数组,包含当前路由的所有嵌套路径片段的路由记录 。路由记录就是 routes 配置数组中的对象副本
  7. $route.name:当前路由的名称,如果有的话
  8. $route.redirectedFrom:如果存在重定向,即为重定向来源的路由的名字

组件

在组件中我们也有一点使用的路由的API。

  1. 在组件内部通过this.$router可以访问到router 实例。
  2. this.$route可以访问到当前激活的路由信息对象
  3. 三个导航守卫:beforeRouteEnterbeforeRouteUpdatebeforeRouteLeave。具体使用详情见进阶篇(一)
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值