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
,params
是会被忽略的,需要把path
换成name
。
this.$router.push({
name: "detail",
params: row,
});
修改之后params
确实传过去了。但当页面一刷新,params
就会变成空对象,就是下面要说的第二种params
无值问题。
2 页面刷新params
无值
这种情况需要参考第一部分的第二个代码示例:将 params
设置为路由的一部分。
'detail/:id'
新页面根据这个id
,重新查询一遍row
,功能完成。
最后,了解下query
和params
方式区别:
-
query
相当于get
请求,页面跳转可以在地址栏看到参数 -
params
相当于post
请求,参数不会再地址栏显示 - 二者可以一起使用,尤其参数较多时。如果参数相当多,可以考虑本地存储
发表评论 (审核通过后显示评论):