微前端-qiankun

108 阅读1分钟

背景

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…