说明
- 本文仅是对主程序为Umi的使用
- 根据qiankun及umi官方文档提示:
使用 @umijs/plugin-qiankun 插件.
为什么不直接使用qiankun呢?因为没有app.js这个entry口(因为我是从umi2升上去的) - 配置主应用
export default {
mountElementId: "root",
qiankun: {
master: {
// 注册子应用信息
apps: [
{
name: 'app1', // 唯一 id
entry: '//localhost:7001', // html entry
},
{
name: 'app2', // 唯一 id
entry: '//localhost:7002', // html entry
},
],
},
},
};
这里有个坑,没配 mountElementId 内容会被顶下去,官方文档也没有提到要这个,他会自动生成另一个 root-master节点渲染页面内容
- 配置子应用
export default {
qiankun: {
slave: {},
},
};
这里如果子应用也是umi,建议保持umi及@umijs/* 的版本一致,否则可能会出现生命周期的一个抛错
-
使用
据官方文档:
建议使用这种方式来引入不带路由的子应用<MicroApp name="app1" />
其他:
<MicroAppWithMemoHistory name="app2" url="/user" />
-
父子应用通讯
这个直接看文档吧,比较简单,父子应用通讯 -
补充
a. 目前想配置credentials(拉取 entry 时是否需要携带cookie),使用这个插件会抛一个似乎跨域的报错
b. 同时开启 mfsu 和 qiankun 有时会出现奇怪的问题
c. 总之按这个插件配置,过程还不是顺畅的,现在勉强能用