最近在做项目号的时候碰到一个问题,就是我在用vue的query传多个参数,其中有一个参数是一个数组的时候。
我是这么操作的:
在给一个标签绑定点击事件:
function fn(a1, a2, a3){
this.$Router.push({
path: "/pages/hcp360/index",
query: {
eid: a1,
docta: a2,
tabList:encodeURIComponent(JSON.stringify(a3))
},
});
}
从上述代码中可以看出,这个tabList就是我索要传的数组
而当我在那边接受参数时:
created(){
let a3 = this.$Route.query.a3
this.a3 = JSON.parse(decodeURIComponent(a3)) //这里报错了一直拿不到值
}
然后我刷新页面 之后就能拿到了,并且url也发生了变化,再刷新几次也没什么变化了
我仔细观察了一下,发现这个a3变了,之前他的每个参数连接是这样a3=%2522name%2575age%...(记不起来了,仿写的一个)
刷新后变成了这样a3=%22name%75age%...
这是我发现的一个说明白了的博主的链接:
https://blog.csdn.net/weixin_45609589/article/details/130431197
也就是说我在传参的过程中又被加了一encodeURIComponent,明白了问题所在。想必就知道该怎么解决了吧
created(){
let a3 = this.$Route.query.a3
this.a3 = JSON.parse(decodeURIComponentde(codeURIComponent(a3)))
}
以上就是url的参数进行encodeURIComponent的编码问题的方法了
如果这篇文章对你有帮助,或者在进行中遇到其他问题,欢迎评论区留言出来。
我们一起探讨~