当前位置 : 主页 > 编程语言 > 其它开发 >

Vue Router的query对象值的问题

来源:互联网 收集:自由互联 发布时间:2022-05-30
在使用 $router.push() 时,如果使用了query,则可以在跳转后从query中获取到对应的参数 如果传的是字符串自然没问题,但是如果传的其他类型的数据,在跳转之前是正常的,而跳转之后再

      在使用 $router.push() 时,如果使用了query,则可以在跳转后从query中获取到对应的参数

      如果传的是字符串自然没问题,但是如果传的其他类型的数据,在跳转之前是正常的,而跳转之后再刷新一遍页面的话,query里面属性的值都会变成字符串

      因为刷新后query的值是直接从页面URL中取的,而在页面URL上的参数只能是字符串类型

       解决方法:

      在传值之前把要传的参数单独放到一个对象里,再放到query里面,然后进行JSON.stringify()处理

      到了目标页面后再进行JSON.parse()处理,还原为对象

 

      优点:可以一次性处理多个参数,适用度高     例子:        // this.$router.push({ path: "/video/detail", query: item });    // ({}).toString() => [object Object]       // this.$router.push({ path: "/video/detail", query: { item } });   this.$router.push({         path: "/video/detail",         query: { item: JSON.stringify(item) },  });  console.log(JSON.parse(this.$route.query.item));

搜索

复制

上一篇:如何基于vue开发ui组件库(heaven-ui)
下一篇:没有了
网友评论