-
Notifications
You must be signed in to change notification settings - Fork 2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
vue2作为主应用,使用vue3子应用时,在子应用中切换路由又回退时出现了url自动加上了undefined #2254
Comments
我也遇到了类似的情况,在 child: vue 3.2 / vue-router 4.x |
我也遇到了类似的情况 |
我也有类似的情况,哪怕用浏览器的后退按钮或history.go(-1)也会有这样的问题 |
+1 |
一开始的注册方法`import { registerMicroApps, start } from 'qiankun'; registerMicroApps([ start();` 换了第二种注册方法就不会有undefined问题了,但不知道为什么`import { loadMicroApp } from 'qiankun'; loadMicroApp({ |
|
解决了吗 |
@Nauxscript @zyf540860996 @CarsonXin @ripeBoy 各位,我现在也遇到这个问题了,请问你们解决了吗? |
在子应用push 的时候,使用下面其中一种都可以 |
@CarsonXin @Nauxscript @zyf540860996 @carolin-violet @ripeBoy @maikangzhi 可以看下我的解决方案。https://github.com/lvchengli/qiankun-demo/tree/feature/fix // vue2 主应用 + vue3 子应用。在主应用中修改 history,去除子应用的路由前缀
function getPathStr(str) {
if (str.startsWith('/vue3')) {
return str.replace('/vue3', '')
}
return str
}
router.afterEach((to, from, next) => {
console.log(to.fullPath, 'router.afterEach')
const state = {
...history.state,
current: getPathStr(to.fullPath)
}
history.replaceState(state, '', window.location.href)
})
// vue3 主应用 + vue2 子应用。在子应用中修改 history,在router路径前增加子应用的路由前缀
const base = window.__POWERED_BY_QIANKUN__ ? '/vue' : ''
router.afterEach((to, from, next) => {
const state = {
...history.state,
current: base + to.fullPath
}
history.replaceState(state, '', window.location.href)
}) |
@lvchengli @carolin-violet @Ashuangshuang @ripeBoy @maikangzhi eg: 如果我要跳转到dashboard页面有以下方式都可以完成跳转
|
我在vue3作为主应用,react作为子应用时也出现了这个问题,最后发现是vue-router(v4.1.6)的push函数导致的错误,贴一下代码: |
楼上找到的这个是根本原因,就是router大版本对currentState的修改方式不同导致的,不好改源码的话,可以自己加一个路由钩子,我这里引了lodash,自己写一个也可以 |
我是主应用vue2.6 + vue-router3.x + webpack, 子应用vue3+vue-router4.x+vite+unplugin-vue-router,同域名下不同子路径,都是hash模式,注册方式是registerMicroApps+start,浏览器回退或者history.back就会出现undefined链接,用了这个方法下可以了
|
这个方法下可以了,但是点击浏览器的返回的时候回不到上一个子应用的页面了,多次点击返回就报错了 |
vue3 主应用加vue3子应用呢 |
What happens?
A clear and concise description of what the bug is.
Mini Showcase Repository(REQUIRED)
How To Reproduce
Steps to reproduce the behavior: 1. 2.
Expected behavior 1. 2.
Context
The text was updated successfully, but these errors were encountered: