vue-router params 无值问题

params 无值共有两种情况会出现:

1 router push params 无值

路由跳转代码:

this.$router.push({
        path: "/cost/order/detail/",
        params: row,
});

运行的时候发现params为空对象,对象row没有传入:

空对象

后来换成这样:

this.$router.push({
        path: "/cost/order/detail/" + row.id,
        params: row,
});

发现params 值只有一个id。很是奇怪,于是查了下官网,找到了答案!

path

原来路由跳转的时候用pathparams是会被忽略的,需要把path换成name

   this.$router.push({
        name: "detail",
        params: row,
   });

修改之后params确实传过去了。但当页面一刷新,params就会变成空对象,就是下面要说的第二种params 无值问题。

2 页面刷新params无值

这种情况需要参考第一部分的第二个代码示例:params 设置为路由的一部分

 'detail/:id'

新页面根据这个id,重新查询一遍row,功能完成。

最后,了解下queryparams方式区别:
  • query相当于get请求,页面跳转可以在地址栏看到参数
  • params相当于post请求,参数不会再地址栏显示
  • 二者可以一起使用,尤其参数较多时。如果参数相当多,可以考虑本地存储

本文章由javascript技术分享原创和收集

发表评论 (审核通过后显示评论):