router.push()的几种用法

682 阅读1分钟

router.push()的几种用法,包括不传参和两种传参方式

const router = new VueRouter({
  routes: [
    // 下面的对象就是路由记录
    { path: '/foo', component: Foo,
      children: [
        // 这也是个路由记录
        { path: 'bar', component: Bar }
      ]
    }
  ]
})
 
// 字符串
this.$router.push('login')
 
// 对象
this.$router.push({path: '/login?url=' + this.$route.path});
 
// 命名的路由
this.$router.push({ name: 'login', params: { userId: 123 }})
 
// 带查询参数,变成/foo/bar?selected=1
this.$router.push({path: '/foo/bar', query: {selected: "1"}});

params传参和query传参的区别:

1、用法上的

query要用path来引入,params要用name来引入,接收参数都是类似的,分别是this.route.query.namethis.route.query.name和this.route.params.name

2、展示上的

query更加类似于get传参,参数在地址栏中会显示出来

params则类似于post,地址栏中不显示参数