fix: 修复页面刷新子路由参数丢失的问题#664
Conversation
当开启路由同步的时候,子页面有带参数,刷新浏览器子应用获取不到参数
|
补充一下 完整的url 上的参数 |
|
为什么会有两个 ?pcsd 和 ?tid,看你上面 完整的url 没有 tid 这个参数呢 |
|
第一个pcsd 是 子应用的名称,是无界处理上去的。第二个是我的nginx代理的路径,访问子应用的静态资源。 |
|
我们这边也有这个问题,出现在第一次打开子应用时,如果url带参数的话会丢失 |
|
现在的问题是我没有办法复现这个参数丢失的问题,也就没有办法确定这个办法是不是有用,对于url带参数丢失的问题,这个时候浏览器的url 都是什么,可以举一个例子我这边看一下吗 |
|
刷新前:?pcsd=%2Fpcsd%2F%23%2Fq-product%2Fproduct-healthcare%2Fobs%2Fdetail%3Ftid%3D4fcb679252964adf88550f56a57a9150%26qmpProductId%3Ddfeb30fe45234460a5495baf35065b30 |
经排查,这个问题是由于 vue-router 路由重定向导致。一旦重定向后,就相当于对 url 解码了两次。 |
使用 vue3 router,配置个重定向路由,就会复现了。 |

当开启路由同步的时候,子页面有带参数,刷新浏览器子应用获取不到参数
npm run test通过详细描述
开启路由同步之后,子应用携带query参数跳转到自己的路由时,页面刷新,子应用无法获取到正常的参数。
是因为一顿给子应用iframe赋值之后,某些参数莫名的被解码了,导致 按照等于号分割的时候,忽略了后面的参数,如下图: