$route

$route获取路由信息
在路由的path里用:id做占位符(id只是一个名字,可以叫其他的)

  1. const router = new VueRouter({
  2. routes: [
  3. { path: '/user/:id', component: User }
  4. ]
  5. })

this.$route.params.id就能获取到路由里的:id

  1. created(){
  2. console.log(this.$route.params.id);
  3. }

http://localhost:8080/#/user/fuck里的:id是fuck

$router

在 Vue 实例内部,你可以通过 $router 访问路由实例
想要导航到不同的 URL,则使用 router.push 方法。这个方法会向 history 栈添加一个新的记录,所以,当用户点击浏览器后退按钮时,则回到之前的 URL。

  1. // 字符串
  2. router.push('home')
  3. // 对象
  4. router.push({ path: 'home' })
  5. // 命名的路由
  6. router.push({ name: 'user', params: { userId: '123' }})
  7. // 带查询参数,变成 /register?plan=private
  8. router.push({ path: 'register', query: { plan: 'private' }})

router.replacerouter.push 很像,唯一的不同就是,它不会向 history 添加新记录,而是跟它的方法名一样 —— 替换掉当前的 history 记录。