一、为什么需要微前端
(1)遗留系统迁移
(2)后端解耦,前端聚合
(3)热闹驱动开发
二、技术拆分方式
(1)路由分发式,将强求路由到对应的应用上。
(2)前端微服务化,在不同的框架之上设计通信和加载机制,以在一个页面内加载对应的应用。
(3)微应用,在部署构建环境中,把多个独立的应用组合成一个单体应用。
(4)微件化,开发一个新的构建系统,将部分业务功能构建成一个独立的chunk代码,使用时只需要远程加载即可。
(5)前端容器化,将iframe作为容器来容纳其它前端应用。
(6)应用组件化,借助于Web Components技术,来构建跨框架的前端应用。
三、业务划分方式
(1)按照业务拆分。
(2)按照权限拆分。
(3)按照变更的频率拆分。
(4)按照组织结构拆分。
(5)跟随后端微服务划分。
四、架构设计
(1)提取组件与模式库。样式、业务组件及共享库。
(2)应用通信机制。PostMessage、parent.window等。
(3)数据管理。URI传参、缓存、客户端存储、服务器JSON格式存储。
(4)专用的构建系统。
五、架构模式
(1)基座模式,通过一个主应用来管理其他应用。设计难度小,但通用性低。
(2)自组织模式,应用之间平等。设计难度大,但通用性高。
六、设计理念
(1)中心化:应用注册表。
(2)标识化,类似于唯一标识符。
(3)生命周期,加载、运行、卸载。
(4)模块内的关系高内聚,模块间的关系低耦合。