使用 umi 3 创建子应用并接入主应用

使用 umi 3 创建子应用并接入主应用

前言:<br />umi 3 更新频繁,文档不完善,时效性不定,因此前提条件很重要,今天是2020年8月21日。<br /> <br />创建子应用使用的脚手架是:umi 3<br />创建主应用使用的脚手架是:um 2,但是本篇文章暂时不介绍创建主应用的过程及在主应用中的配置过程。<br />

<a name="Yd9KE"></a>

1. 创建 umi 3 工程

命令行

1yarn create @umijs/umi-app

<a name="dzykr"></a>

2. 安装 umi 3 的 qiankun 插件

创建的 umi 3 并不包含 qiankun 插件,需要自己安装。

1yarn add @umijs/plugin-qiankun -D

<a name="3"></a>

3. 添加 package.json 的 name

在 package.json 中添加属性 name,name值为你的项目名,请自定义。<br />

<a name="INHpa"></a>

4. 在子应用中配置

参考:https://umijs.org/zh-CN/plugins/plugin-qiankun#第一步:插件注册(configjs) <a name="K1AJ1"></a>

4.1 插件注册

对于 umi 3,需要在子应用的配置( .umirc.ts )中,添加下面这部分代码:

1qiankun: { 2 slave: {} 3}

添加后效果如下:<br />image.png <a name="eqRWg"></a>

4.2 配置运行时生命周期钩子(可选)

如果需要在子应用的生命周期期间加一些自定义逻辑,可以在子应用的 src/app.ts 里导出 qiankun 对象,并实现每一个生命周期钩子,其中钩子函数的入参 props 由主应用自动注入。<br /> <br />需要注意的是,在由 umi 3 脚手架创建的工程中,src 目录下并没有 app.ts 文件,这需要自己创建,并将如下代码 copy and paste。

1export const qiankun = { 2 // 应用加载之前 3 async bootstrap(props) { 4 console.log('app1 bootstrap', props); 5 }, 6 // 应用 render 之前触发 7 async mount(props) { 8 console.log('app1 mount', props); 9 }, 10 // 应用卸载之后触发 11 async unmount(props) { 12 console.log('app1 unmount', props); 13 }, 14}; 15

<br />至此,这一阶段的工作已经完成,虽然如果没有对 umi 的整体了解下去看本篇文章会云里雾里,但还是希望能给在此部分有所困惑而停滞的同学提供帮助。

点赞
收藏

评论区

加载中...

相关推荐

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

umi +qiankun 主应用动态装载子应用(路由)解决方案

<aname"p1boA"</a前言接上一篇(),上一篇中使用的都是运行时动态注册子应用,子应用路由仍然是写死的、非动态获取。<br/<br/然后真实项目中除了需要动态注册子应用,还很有可能需要动态装载子应用(路由),比如说:不同权限的用户需要给予他们不同的路由。<br/<br/此篇blog的代码是基于上一篇进行改动的,上一篇

umi 项目多环境打包配置

参考:1.1.1.<br/我的需求:在不同环境(dvl、sit)下打包,请求基础地址也需要随环境的变化而改变<br/遇到的困难:umiv3文档不完善未知bug<aname"K770H"</a1.创建不同环境的配置文件此部分可参考:2.<br/需要dvl、sit两个环境,因此创建两个配置文件,如图:<br

微前端中,为子应用配备开发环境临时导航菜单,提高开发效率

首发于<aname"Ei7d1"</a场景子应用开发过程中,势必需要频繁地切换菜单,但因为子应用打包后是要接入到基座的,因此不能有菜单等。但如此的话,日常的开发又会不方便,甚至影响开发效率。但我的个人直觉,貌似更正确的做法是:将子应用直接接入到基座中开发调试,因此目前场景下,我们需要的是:<br/在开发环境下,我们希望有菜单,方便我们开发人员进入

umi + qiankun 动态注册子应用解决方案

前言首发于<br/本篇文章可以被视为上一篇文章()的延续,上一篇文章大致讲述了搭建一个简易微前端平台的过程,其中关于子应用注册的配置是通过硬编码的方式,在构建打包前写入的。<br/<br/但是真实项目中,更需要的是动态注册子应用,比如说我正参与的这个项目。<br/<br/本篇文章的示例代码是基于上一篇文章示例代码改动的,上一篇文