子应用无法加载问题
基座和子应用都是vite4 + vue3
当子应用代码为如下,可以在官方的基座项目中运行,无法在我自己建立的基座项目中运行
import { createApp, App as AppInstance } from 'vue';
import App from './App.vue';
import { createPinia } from 'pinia';
import router from './router';
import 'virtual:windi.css';
import { Router } from 'vue-router';
let app: AppInstance | null;
function mount() {
app = createApp(App);
console.log('微应用child-vite渲染了');
app.use(createPinia()).use(router).mount('#vueApp');
handleMicroData(router);
}
// 将卸载操作放入 unmount 函数
function unmount() {
app?.unmount();
// 卸载所有数据监听函数
window.eventCenterForVueApp?.clearDataListener();
app = null;
console.log('微应用child-vite卸载了');
}
console.log('🚀 ~ file: main.ts:65 ~ window.__MICRO_APP_BASE_APPLICATION__:', window.__MICRO_APP_BASE_APPLICATION__);
// 微前端环境下,注册mount和unmount方法
if (window.__MICRO_APP_BASE_APPLICATION__) {
// @ts-ignore
window['micro-app-vue-app'] = { mount, unmount };
} else {
// 非微前端环境直接渲染
mount();
}
只有将上面的mount和unmount改成如下才能显示 `const app = createApp(App); console.log('微应用child-vite渲染了');
app.use(createPinia()).use(router).mount('#vueApp');`
也就是不再为window['micro-app-vue-app']添加mount, unmount函数,但是切换应用回来,之前显示过的应用又无法显示 请问是哪里出了问题
复现仓库 https://github.com/BenjaminCCG/micro-app-test-demo
上述代码的接入方式是老版本的,1.0版本建议参考 https://micro-zoe.github.io/micro-app/docs.html#/zh-cn/transfer ,https://micro-zoe.github.io/micro-app/docs.html#/zh-cn/framework/vite
官方案例也会在近期更新
我也使用最新版本 但是遇到子用的route无法渲染 希望能尽快出个新的demo