微前端
组织应用规模的解决方案,将应用相互拆分独立,使得开发者不会干涉其他应用。
微应用
- 所有普通的 spa
微前端框架的必备特性
注册微应用
- 先给每个微应用设置初始状态
- 重写监听器注册函数
- 重写用户导航的会话记录状态
- 重定向路由
- 获取微应用的状态
- 执行卸载,加载,安装微应用
资源加载: 加载微应用代码
- html 入口访问:通过
import-entry-html
获取页面源码字符串; - js 入口访问:当作 ES 模块来使用;
- html 入口访问:通过
环境隔离(沙盒):执行代码
css,js
- iframe
- ShadowDOM
- 快照沙箱
- 代理沙箱
应用内通信
- 首先原则是:保持微前端解耦
涉及到的技术
- Web Component
- Shadow DOM
- CustomEvent
- JS SandBox
- Proxy
- 通过给执行的 js 包一层
with(global){}
实现 iframe
实现- 根据当前微应用,生成一份
window
状态,离开后还原指定微应用
状态实现
- 样式隔离
- 通过添加选择器实现
- 通过切换样式
删除,添加
实现
- 元素隔离
- 预加载
- 多框架兼容
- 应用间通信
- 渲染原理
- 资源地址补全
- 插件系统
- 数据通信
沙箱
- 浏览器沙箱
- js 沙箱