面试题: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}
})

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。