无星的微前端之旅(五)——qiankun遇到的一些坑

Vue3的router问题

其实严格来说,这不是qiankun的问题,是vue-router4.x的问题。

解决方案:history模式使用window.history跳转,hash模式主应用添加hashchange事件发送

详情见issues1280

旧的jq项目改造,发现属性和方法丢失

子应用包含多个script,其中有些是公共方法,其他js使用的时候提示找不到方法

解决方案:需要显式挂载到window

详情见issues1272

qiankun添加的div撑不满外部盒子

使用css选择器为qiankun添加的div加样式

#sub-apps {
  height: 100%;
  >div:first-child {
    height: 100%;
  }
}

hash模式下无法激活子应用

添加方法getActiveRule

const getActiveRule = (hash) => (location) => location.hash.startsWith(hash);

子应用的接口devServer代理不生效

这是合理的,因为所有js代码都会被主应用加载并通过eval执行,所以代理是不生效的,实际上会走主应用中devServer的代理。

那么能不能让各自走各自的devServer代理呢,答案是能。(要命了,我记得我看到过有一篇文章给了解决方案,但我忘记是哪一篇了。刚刚找了一圈没找到TAT)

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容