微前端框架wujie进阶大师必备知识——wujie运行模式

551 阅读3分钟

运行模式介绍

Wujie 的运行模式主要分为以下三种:

  1. 保活模式:当子应用的 alive 参数设置为 true 时进入保活模式。此模式下,子应用只会进行一次渲染,页面切换时子应用的 DOM 会被保留在内存中,重新激活时直接挂载到容器上。子应用路由不会随 URL 变化而改变,需要通过通信方式跳转路由
  2. 单例模式:当子应用的 alive 参数为 false 且进行了生命周期改造时进入单例模式。子应用页面切换时,会销毁当前实例并创建新的实例,同时路由会跳转到对应 URL
  3. 重建模式:当子应用未设置保活模式且未进行生命周期改造时进入重建模式。每次页面切换都会销毁子应用的 DOM 和 iframe,子应用实例和 Wujie 实例也会被销毁。路由变化后,子应用会重新渲染

优劣对比及适用场景建议

一、保活模式alive: true

优点

  1. 状态保留:子应用实例、DOM、路由状态等完全保留,内存中快速恢复
  2. 事件持续性:子应用可持续响应全局事件(如通信总线 bus
  3. 性能优势:切换时仅挂载/卸载 WebComponent,无重复渲染开销

缺点

  1. 内存占用高:长期保留实例可能导致内存压力
  2. 路由不自动跳转:需通过手动通信控制子应用路由

适用场景

  • 高频切换:如导航菜单频繁切换子应用页面
  • 强状态依赖:子应用需保留表单数据、动画状态等实时信息

二、单例模式alive: false + 生命周期改造)

优点

  1. 路由自动跳转:主应用 URL 变动可直接触发子应用路由更新
  2. 内存优化:实例按需销毁重建,内存占用可控
  3. 共享实例:同名子应用可共享 Wujie 实例,支持多菜单共用同一子应用

缺点

  1. 实例重建开销:页面切回时需重新初始化子应用
  2. 生命周期依赖:需子应用配合改造(window.__WUJIE_MOUNT/UNMOUNT

适用场景
5

  • 多入口共用子应用:如多个菜单共用同一子应用的不同页面
  • 路由联动需求:主应用 URL 需精确映射子应用路由

三、重建模式(未配置保活/未改造生命周期)

优点

  1. 资源释放彻底:完全销毁 iframe、WebComponent 等资源,无残留风险
  2. 实现简单:无需额外配置或子应用改造

缺點

  1. 性能差:每次切换需完全重建子应用实例和资源
  2. 路由冲突:若开启路由同步,参数优先级高于 URL 变更

适用场景

  • 低频使用:如仅偶尔访问的静态页面
  • 兼容性需求:对内存敏感或需规避长期运行的潜在问题(如内存泄漏)

选型建议

业务需求推荐模式决策依据
高频切换且需保留状态保活模式避免重复初始化,保障用户体验连续性
多入口共用子应用单例模式通过实例共享降低内存冗余
子应用功能简单、访问低频重建模式简化实现,规避复杂维护成本

示例

  • 后台管理系统仪表盘:保活模式(多个监控面板快速切换)
  • 电商平台商品/订单分离页:单例模式(主菜单共用子应用,路由精确同步)
  • 临时活动页:重建模式(一次性使用,结束后彻底释放资源)

参考文档:无界官方文档 —— wujie运行模式