vue 获取路由中参数,有时是字符串,有时是数字

项目中的菜单是由后台动态传来的,通过ID来进行路由的跳转的,

但是发现通过(this.$route.query.id)获取 ID 进行判断页面时,有时获取到的是字符串、有时候是数字,

原因:

字符串:当已经处在某个有ID的路由页面时,当点击刷新,此时在获取 ID 时,ID 是从URL 字符串中获取的参数,获取到的也是字符串类型的值

数字:当点击菜单切换路由时,此时传过去的 ID 是Number 类型的,所以就会获取到数字类型的值

解决办法:

1:将获取到的值 强制类型转换为  Number,或者强制类型转换为 string

2:判断时通过 ‘ 或 ’ || 连接两个类型

eg:

if (this.$route.query.id === 555 || this.$route.query.id === '555') {
    此时无论是数字或者字符串,都可以进入到次函数中
}

有人会问,为什么不直接用 ‘==’ 来判断呢,

原因:

1:三个等号比较严谨,不仅对值进行判断,还对类型进行了判断

2:目前使用 esLint 对代码进行检验的比较多,对等号规则也有了限制,推荐使用三个等号

本文是个人的理解,如有不妥,请赐教

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值