现象描述

操作步骤
1.点击子应用对应的路由(app-sub-vue2)
2.点击子应用的其他路由(About)
3.点击主应用其他路由(Home)

img

img

  • 主应用信息
  • vue@^3.0.0、vue-router@^4.0.0
  • 子应用信息
  • vue@^2.6.11、vue-router@^3.2.0

出现问题的原因

vue-router 3.xvue-router 4.x设置的history.state的数据结构不同

低版本的 vue-router 在 pushState 的时候,会覆盖丢失主路由的 history.state,导致主路由跳转异常

解决方案

主应用监听router.beforEach 手动修改history.state数据结构

import _ from "lodash"

router.beforeEach((to, from, next) => {
  if (_.isEmpty(history.state.current)) {
    _.assign(history.state, { current: from.fullPath });
  }
  next();
});

相关参考

qiankun issues #1361

Logo

前往低代码交流专区

更多推荐