问题: 在最近的项目中, 我通过传递不同的参数, 复用同一组件进行渲染, 然而意外出现一个 bug, 就是当我重新刷新该页面时, 会新增一个 tab
原来的:
刷新页面后:
查阅资料后, 发现该现象是由于通过 params 进行传递的参数引起的, params 进行传参后再次刷新页面, 参数丢失, 导致 fullpath 不一致, 从而新增了页面 (而我使用的 d2admin 基于 element-ui 第三方框架)
解决方案: 将 params 方式传参改为使用 query 传参, 这样参数就不会因为刷新而丢失
参考:
https://juejin.im/post/5c139fed6fb9a049ab0d80dc
query 和 params 传参的区别?
query 传参配置的是 path, 而 params 传参配置的是 name, 在 params 中配置 path 无效
query 在路由配置不需要设置参数, 而 params 必须设置
query 传递的参数会显示在地址栏中
params 传参刷新会无效, 但是 query 会保存传递过来的值, 刷新不变 ;
如果路由上面不写参数, 也是可以传过去的, 但不会在 url 上面显示出你的参数, 并且当你跳到别的页面或者刷新页面的时候参数会丢失, 那依赖这个参数的 http 请求或者其他操作就会失败
来源: http://www.bubuko.com/infodetail-3267119.html