面试题:vue路由传参 query vs params 异同

:携带query跳转 (path和name的跳转都可以携带query参数) 。query相当于get请求,请求参数都会显示在浏览器地址栏。

this.$router.push({
  path: '/link', name: 'link', query: { username: this.username}
})

:携带params跳转(只有name指定的跳转才可以携带params)。params相当于post请求,请求参数不会显示在地址栏,并且刷新页面后参数会消失。

this.$router.push({
  name: 'link', params: { username: this.username}
})

引申:
route 路由信息对象,只读对象
$router.push({...}) 本质上是向history栈中添加一个路由,看起来是切换路由,本质上是添加history记录。

你可能感兴趣的:(面试题:vue路由传参 query vs params 异同)