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

2021-04-01  本文已影响0人  无星灬

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)

上一篇下一篇

猜你喜欢

热点阅读