解决基于Vite的qiankun微前端中,子应用的路由跳转出错的问题

在使用基于Vite的Qiankun框架时,遇到子应用路由失效问题。问题在于基台应用中存放子应用的容器消失。解决方法是根据官方文档修改路由配置,用`:pathMatch`替换废弃的通配符*,确保所有music开头的路由指向包含容器的组件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题

在基于vite的qiankun框架的使用过程中,发现我可以通过基台应用跳转到目标子应用,但是对于这个目标子应用本身的路由却失效,提示说找不到相关地址,但是在子应用中的路由确实是注册了的。头疼了很久。

进入子引用首页,可以正常显示

子应用中点击路由跳转却存在问题,提示路由不存在

分析

检查元素后,可以明显发现我本身基台应用中用于存放子应用的容器不见了,这就是问题所在,路由跳转后页面变化了,原来的容器存在在“/music”中,在“/music/dog”中是没有任何东西的。

解决问题

其实查看官方文档也有这样的问题的(常见问题 - qiankun (umijs.org))如下图,只是需要将地址规则改一下,使得对于“/music”开头的所有路由都跳转到包含容器的组件里就好了。当然这个解决文档中还是存在问题的,因为vue-router在升级到4版本后就废弃了通配符“*”,需要参考官方文档改一改的(带参数的动态路由匹配 | Vue Router (vuejs.org))。

//原来的
{
        path:'/music',
        name:'music',
        component:()=>import("../layout/index.vue")
}
//更改后的
{
        path:'/music/:pathMatch(.*)*',
        name:'music',
        component:()=>import("../layout/index.vue")
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值