背景
iframe的优缺点:
- 页面可以是不同域名
- 需要设计一套对应的监听和传参机制
- 应用、加载、渲染等体系实现
qiankun出现的历史背景:juejin.cn/post/688995…
2.微前端框架(四大核心要素)
前端框架的实现,按照功能的一致性,一定会考虑四个因素:获取子应用,加载子应用,隔离子应用,子应用通信
2.1 路由劫持
路由劫持这个功能single-spa已经实现了
2.2 加载子应用
加载子应用这块也是qiankun对single-spa的主要优化点。子应用的加载和加载完成之后的解析,是qiankun对single-spa的主要的优化点。这里主要表现在import-html-entry这个包中。qiankun中将这部分罗技主要封装在import-html-entry这个包中。这个包主要对三个部分的代码进行处理:html、js、css三个部分进行处理。
html的处理
当通过路由劫持之后,回去请求子应用的域名,拿到html字符串,然后通过processTpl方法从这些字符串中解析出html模板、js脚本< script > 、css样式< style >
export default function processTpl(tpl, baseURI) {
// 省略详细代码,这里是对各种css、js等资源各种写法的预处理,用于规范后面对资源的统一处理
return {
template, // html 模板
scripts, // js 脚本(内联、外联)
styles, // css 样式表(内联、外联)
entry: entry || scripts[scripts.length - 1], // 子应用入口 js 脚本文件,如果没有默认以解析后的最后一个 js 脚本代替;
};
}
js的处理
css的处理
juejin.cn/post/689188…
2.3 应用间运行时的隔离
qiankun主要的优化点
2.4 应用间的通信
搞懂以下问题:juejin.cn/post/712386…