qiankun框架
乾坤官方文档
主应用
import { createApp } from 'vue';
import App from './App.vue';
import { registerMicroApps, start } from 'qiankun';
const app = createApp(App);
app.use();
registerMicroApps([
{
name: 'TESTApp',
entry: '//localhost:8081',
container: '#sub-app-1',
activeRule: '/app/works',
},
]);
start();
app.mount('#app');
微应用
import qiankun from 'vite-plugin-qiankun'
plugins: [
qiankun('TESTApp', {
useDevMode: true
}),
]
import { renderWithQiankun, qiankunWindow } from 'vite-plugin-qiankun/dist/helper';
async function render(props: any) {
const { container } = props;
app.component('i-icon', IconFont)
const router = createRouter({
history: createWebHistory((qiankunWindow as any).__POWERED_BY_QIANKUN__ ? "/app/works" : "/"),
routes
});
app
.use(router)
.use(useTable)
.use(createPinia())
app.mount(container ? container.querySelector('#app') : '#app');
}
renderWithQiankun({
mount(props) {
render(props);
},
bootstrap() {
console.log('bootstrap');
},
unmount() {
console.log('unmount');
app.unmount();
},
update() {
console.log('update');
},
});
if (!qiankunWindow.__POWERED_BY_QIANKUN__) {
render({});
}