4、编程时导航

介绍

学习vue-router的一些学习笔记,所有笔记内容请看 vue-router学习笔记

编程时导航

除了使用创建a标签来定义导航链接,还可以使用router.push()方法,通过编码实现,如下所示:

router.push(location,onComplete?,onAbort?)
在vue实例内部,可以通过$route 访问路由实例,可以使用this.$route.push()
方法

route.push()方法会向History栈添加一个新的记录,当用户点击浏览器的后退按钮时,则可以回到之前的URL
点击时,这个方法会在内部调用router.push()方法,所以点击等同于调用router.push()方法

router.push()方法参数如下所示:

// 字符串路径
router.push('home')  

// 对象
router.push({path:'home'}})

//命名的路由
router.push({ name :'user',params: {userId:'123'}})

// 带查询参数,变成 /register?plan=private
router.push({path: 'register',query:{plan:'private'}})

如果提供了path,则params会被忽略,上述例子query 并不属于这种情况。
如下所示情况:

const userId = '123'
router.push({name :'user',params:{ userId}}) // ->/user/123
router.push({path:`/user/${userID}`})

// 此处params不生效
router.push({path:'register',params:{userID}})// ->/user

在router.push() 或 router.replace() 中他提供的onComplete 和onAbort 回调作为第二个和第三个参数。这些回调将会在导航成功完成 (在所有的异步钩子被解析之后) 或终止 (导航到相同的路由、或在当前导航完成之前导航到另一个不同的路由) 的时候进行相应的调用。在 3.1.0+,可以省略第二个和第三个参数,此时如果支持 Promise,router.push 或 router.replace 将返回一个 Promise

router.replace()

router.replace(location,conComplete?,onAbort?)

类似于router.push ,不同在于,不会想history 添加新纪录,而是替换当前的history记录

<router-link :to=".." replace>   等价于router.replace(..)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值