无界之所以能做到“零改造成本”与“极速加载”,秘密在于它对浏览器原生特性的精妙组合:
安装依赖
npm install wujie-vue3页面使用
<template>
<div class="container">
<WujieVue
name="my-sub-app"
url="http://localhost:8080/" //根据env环境动态调整url
:sync="true"
:alive="true"
:props="{ theme: 'dark' }"
/>
</div>
</template>
## js部分
import WujieVue from "wujie-vue3";alive: true<template>
<div class="app-container">
<WujieVue
name="crm-sub-app"
url="http://localhost:8001/"
:alive="true"
:sync="true"
/>
</div>
</template>⚠️ 性能提醒:由于子应用的 DOM 树和 JS 内存常驻,保活的子应用数量过多(例如超过 5-8 个重型应用)会导致主应用的浏览器内存占用过大。建议对高频、重度录入的子应用开启此模式,其他低频应用不推荐。
alive: false+生命周期改造<template>
<div class="app-container">
<WujieVue
name="erp-sub-app"
url="http://localhost:8002/"
:alive="false"
:sync="true"
/>
</div>
</template>子应用需要导出 __WUJIE_MOUNT 和 __WUJIE_UNMOUNT 两个生命周期钩子,负责实例的挂载与销毁。
子应用配置:
import { createApp, App as VueApp } from "vue";
import App from "./App.vue";
import router from "./router";
let app: VueApp | null = null;
// 1. 封装挂载方法
function mount() {
app = createApp(App);
app.use(router);
app.mount("#app");
}
// 2. 封装销毁方法
function unmount() {
app?.unmount();
app = null;
}
// 3. 接入无界生命周期
if (window.__POWERED_BY_WUJIE__) {
window.__WUJIE_MOUNT = mount;
window.__WUJIE_UNMOUNT = unmount;
// 必须手动触发首次 mount
window.__WUJIE?.mount();
} else {
// 独立运行环境
mount();
}alive: false+无生命周期改造 ⚠️重建模式代价:由于每次切走都会强制销毁并重新创建 <iframe>(包含里面的 JS 执行上下文、运行时变量),重新切回时需要重新加载 HTML/JS、重新进行 JS 词法解析、重新执行生命周期,性能最差,白屏时间最长。
待补充.....
布莱克的个人微信小程序

© 2025 - 2026 Black Blog. All rights reserved. | 豫ICP备2025153558号-1
© 2025 Black Blog. All rights reserved.
豫ICP备2025153558号-1
