微前端
- 为什么选择微前端,
- 微前端的缺点(微前端性能一定就要比spa好吗),
- 微前端业务遇到哪些问题怎么解决
- 沙箱的作用(这里没答好)
- 样式污染怎么解决。
- 因为采用的框架是qiankun,问了还有哪些方案以及优劣。
- 为什么选择微前端
- 多技术栈
- 大型应用,模块重复
- 提升业务内聚度(加上monorepo可以做到原子化的commit提交,而不必打开多个编辑区)
higgs的优势:
- 不限制子应用技术栈
- 单独管理包,可以使用不同的依赖
- 基于es6的proxy的js沙箱
- 基于发布订阅模式的全局通信
- css样式隔离,给子应用增加前缀
- 支持插件系统,注入一些全局变量和错误修复
基于microApp,提供了
- 依赖管理,可共享可独立
- 完善的路由共享,可以与uac鉴权相结合
- 完善的通信机制
- 使用microApp的js沙箱和样式隔离机制
- 微前端的缺点和性能问题
- 一个包会多次加载,并且版本不一致,导致首屏时间加长
- 使用webpack5的模块邦联模式,抽离公共依赖,建立公共模块,统一使用。
- 切换子应用有白屏如何解决?
- 将公共模块从基座应用中读取,减少Bundle的体积
- 子应用根节点加loading,等待Bundle完成后,再将真实节点挂在window下。
- 沙箱机制的作用
- js作用域隔离,防止不同子应用之间的 JS 变量污染
- Proxy实现的沙箱机制
- 样式污染怎么解决?
- 给子应用的样式增加前缀
Webpack
- Webpack 的 Tree Shaking 是如何工作的?
- 如何确保tree-shaking生效?
- tree-shaking 原理是什么?