Vuerouter的query对象⾥的值的问题
在使⽤ $router.push() 时,如果使⽤了query,则可以在跳转后从query中获取到对应的参数。如果传的是字符串⾃然没问题,但是如果传的其他类型的数据,在跳转之后是正常的,⽽跳转之后再刷新⼀遍页⾯的话,query⾥⾯的属性的值都会变成字符串。例如:
this.$router.push({ name:'product', query: {canSee: false} });
  最初跳转之后,this.$route.query.canSee打印的值是Boolean类型的。然后刷新⼀下,值就变成了String类型了。个⼈猜测是因为刷新后query的值是直接从页⾯URL中取的,⽽在页⾯URL上的参数的类型只能是字符串类型。
vuejson转对象
解决⽅法:
  1. 在传值之前把要传的参数单独放到⼀个对象⾥,在放到query⾥⾯,然后进⾏JSON.stringify()处理,到了⽬标页⾯后再进⾏JSON.parse()处理,还原对象。这种⽅法的好处是可以⼀次性处理多个参数,⽽且适⽤度⾼,建议使⽤这种⽅法。
  2. 传值前不做处理,到了⽬标页⾯后再单独对原本为⾮字符串的数据进⾏JSON.parse()处理。缺点是字符串类型的数据不能如此处理,要确保该数据不是字符串类型的。局限性⼤,不推荐适⽤。
相关⽂章:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。