vue-router刷新页面后路由中的参数从数字变成字符串

在通过ID唯一标识数据,避免重复添加的时候,发现刷新时还是会重复添加,但是只会添加一次,第二次刷新就不会再添加了。删删改改半天,才发现,第一次通过this.$route.query.id获得的ID是数字型,第二次就是字符串型。

原因:

数字:切换路由时传过去的 ID 是Number 类型的,所以就会获取到数字类型的值
字符串:处于该ID的路由页面时,再次刷新时获得的ID是从URL字符串中获取的参数,也就是字符串型

解决方法

强制类型转换,需要什么类型就转换成什么类型
转换为字符串型

方式 说明 案例
toString() 转成字符串 var num=1; num.toString();
String()强制转换 转成字符串 var num=1; String(num);
加号拼接字符串 和字符串拼接的结果都是字符串 var num=1; num+'字符串';

转换为数字型

方式 说明 案例
parseInt(string) 将string类型转换成整数数值型(若有小数会取整) parseInt('78')
parseFloat(string) 将string类型转换成浮点数数值型 parseFloat('12.34')
Number() 将string类型转换成数值型 Number('12')
js隐式转换(- * /) 利用算术运算隐式转换为数值型 '12'-0
posted @ 2022-06-29 00:09  Rins  阅读(1359)  评论(0编辑  收藏  举报