Skip to content

参考

基于 wujie v2(2026-06 复活) · 核于 2026-07

速查

  • 核心 API:startApp(挂载)/ preloadApp(预加载)/ destroyApp(销毁)/ refreshApp(重建,v2.1)/ setupApp(默认配置)/ clearAssetsCache(清缓存)/ bus(通信)
  • 双容器:JS 在 iframe(原生 window/history/location、物理隔离),DOM 在 WebComponent(shadowRoot、样式隔离),document 代理桥接
  • 三模式:保活 alive:true(不销毁、状态留、秒切)/ 单例(写生命周期、销毁重建实例)/ 重建(默认)
  • 路由:sync:true 劫持 iframe history → 子应用路由投影到主应用 query;单向同步;prefix 瘦身;v2.0 支持前进后退
  • 通信:props(父传子)/ window.parent 直通(同域)/ bus EventBus(去中心化广播)
  • 版本:v1.0.29(2025-07)后沉寂 → 2026-06 v2.0「全新空白同域 iframe 沙箱」复活、连发 4 版
  • 定位:wujie = iframe 物理隔离 + WebComponent 渲染;隔离最强 + Vite 原生友好 + 保活预加载秒开

一、核心 API 表

API作用关键参数 / 返回
startApp(options)启动/挂载子应用name/url/el(必填);sync/alive/props/fiber/degrade 等 + 生命周期钩子;返回销毁函数
preloadApp(options)预加载 / 预执行startApp + exectrue 预执行渲染);空闲期拉资源
destroyApp(name)销毁指定子应用name,销毁其 iframe + WebComponent 实例
refreshApp(name)全量重建刷新(v2.1.0 新增)name,销毁重建
setupApp(options)预设默认配置startApp 配置项
clearAssetsCache(host?)清资源缓存不传清全部、传 host 清指定
bus去中心化事件总线$emit/$on/$off/$once/$onAll/$offAll/$clear

二、iframe + WebComponent 分工表

关注点归谁说明
子应用 JS 执行iframe(同域)原生 window,全局/定时器/事件都在 iframe 内
window/history/locationiframe各自独立、原生;路由同步靠劫持 iframe history
子应用 DOM 渲染WebComponentshadowRoot 挂载,样式隔离随 Shadow DOM
样式隔离WebComponentShadow DOM 天然隔离
降级iframe 直渲degrade:true 时 DOM 也在 iframe,弹窗受限

三、保活模式对比表

模式开启状态适用
重建(默认)不设 alive每次销毁重建简单子应用、内存敏感
单例写生命周期、不开 alive实例复用、DOM 重建需生命周期控制
保活alive: trueDOM+JS 状态全留、秒切复杂表单、Tab 切换、秒开

四、路由同步表

行为
开启startApp({ sync: true })
机制劫持子应用 iframe 的 history.pushState/replaceState,投影到主应用 URL query
同步方向单向:仅初次实例化从主应用 URL 读回子应用路由
前进后退v2.0 空白同域 iframe 沙箱支持
瘦身prefix 把长前缀映射成短 key

五、props / bus 通信表

方式方向主应用子应用
props父 → 子startApp({ props })window.$wujie.props
window 直通双向iframe.contentWindowwindow.parent
bus任意import { bus } from "wujie"window.$wujie.bus

六、版本时间线表

版本时间关键
v1.0.02022-11首个正式版,iframe + WebComponent 路线
v1.0.292025-07v1 线末版,此后约一年沉寂
v2.0.02026-06全新空白同域 iframe 沙箱、支持前进后退
v2.1.02026-06新增 refreshApp、修 destroy 竞态内存泄漏

权威链接

相关页