关于编程式导航$router.push、replace、go的用法区别

  1. 如果是想要跳转到不同的url,可以使用router.push方法,这个方法会向history里面添加记录,是可以通过浏览器的返回按钮,返回到之前的页面的。
// 字符串
router.push('home')
// 对象
router.push({ path: 'home' })
// 命名的路由带参数
router.push({ name: 'user', params: { userId: '123' }})
// 获取跳转后的页面参数
this.userId = this.$route.params.userId

// 带查询参数,变成 /register?plan=private
router.push({ path: 'register', query: { plan: 'private' }})
// 获取跳转后的页面参数
this.plan = this.$route.query.plan

  1. router.replace和 router.push 很像,但是他是不会向history里面田间新的记录的。点击返回,会跳转到上上一个页面。上一个记录是不存在的。

  2. router.go(n)这个方法的参数是一个整数,意思是在 history 记录中向前或者后退多少步,类似 window.history.go(n)。

// 在浏览器记录中前进一步,等同于 history.forward()
router.go(1)

// 后退一步记录,等同于 history.back()
router.go(-1)

// 前进 3 步记录
router.go(3)

// 如果 history 记录不够用,那就默默地失败呗
router.go(-100)
router.go(100)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章