一、概念性东西:
2018年single-spa诞生了,single-spa是一个用于前端微服务化的js前端解决方案(本身没有处理样式隔离,js执行隔离),实现了路由劫持和应用加载
2019年qiankun基于single-spa,提供了更加开箱即用的API(single-spa + sandbox + import-html-entry)做到了与技术栈无关、并且接入简单
总结:子应用可以独立构建,运行时动态加载,主子应用完全解耦,与技术栈无关,靠的是协议接入,子应用必须导出bootstrap、mount、unmount方法。
这不是iframe吗?
如果使用iframe,iframe中的子应用切换路由时用户刷新页面就尴尬了。
应用通信:
1、基于URL来进行数据传递,但是传递消息能力弱
2、基于CustomEvent实现通信
3、使用全局变量、Redux进行通信
公共依赖:
1、CDN - externals
2、webpack 联邦模块
二、single-spa实现例子:
1、先创建一个vue项目:vue create child-vue
2、在此项目中添加single-spa-vue:npm i single-spa-vue
说明:如果是react项目则安装single-spa-react
3、修改main.js文件,导出bootstrap/mount/unmount:
import Vue fr