除了使用 <router-link>
创建 a 标签来定义导航链接,我们还可以借助 router 的实例方法,通过编写代码来实现。
router-link的用法:
<router-link to="/foo">Go to Foo</router-link>
代码实现
router.push(location,onComplete?,onAbort?)
跳转到指定页面,并向history栈添加一个新的记录,新页面打开后,回退时,则回到之前的url。
location:可以是字符串,对象。
实例:
router.push('login')
router.push({name:'login',params:{user:'12345'}})
router.push({path:'login',query:{user:'12345'}}) 再跳转后的页面中可以this.query 获取参数。
router.replace(location,onComplete?,onAbort?)
跟 router.push
很像,唯一的不同就是,它不会向 history 添加新记录,而是跟它的方法名一样 —— 替换掉当前的 history 记录。
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)
注意以上代码在 Vue 实例内部,你可以通过 $router
访问路由实例。因此你可以调用 this.$router.XXX