【微前端】微前端最终章-qiankun指南以及微前端整体探索 (4)

前文有提到,在react中使用qiankun可以使用apiloadMicroApp,这里我们也用它来处理路由的跳转。
我们主要是在main-app中操作:
首先新建micro-app的view文件(每多一个子应用就新建一个):

【微前端】微前端最终章-qiankun指南以及微前端整体探索

 

 

 

然后使用react-router直接配置:
由于create-react-app默认没有直接提供react-router,我们手动下一个

 

npm install react-router react-router-dom --save

改完index.js长这样:

【微前端】微前端最终章-qiankun指南以及微前端整体探索

 

 


再试一下:

【微前端】微前端最终章-qiankun指南以及微前端整体探索

 

 

大功告成! 

 

结论和源码

相比较上一次我们看见的 singlespa的配置要简单了很多,而且更加直白,新增子应用更加无缝。
需要demo源码的同学私信我哦

 

应用场景和坑

 

坑-静态资源问题解决

微应用打包之后 css 中的字体文件和图片加载如果使用的加载路径是相对路径,会导致css 中的字体文件和图片加载 404。

而 css 文件一旦打包完成,就无法通过动态修改 publicPath 来修正其中的字体文件和背景图片的路径。

主要有三个解决方案:

所有图片等静态资源上传至 cdn,css 中直接引用 cdn 地址(推荐)

借助 webpack 的 url-loader 将字体文件和图片打包成 base64(适用于字体文件和图片体积小的项目)(推荐)

使用绝对地址,nginx中设置静态目录

  

结束语

qiankun整体的思路是比较ok的,它大大简化了singlespa的使用逻辑,让微前端的门槛变得更低,但它仍然有一些缺点,例如部分api总是会有莫名其妙的问题,例如api文档不是特别的直观等,这些都是待改进的地方。而对于微前端来说,做到能够技术栈无关、渐进升级旧项目、分离不同业务等功能就已经能发挥它的最大价值了。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpgypy.html