一个简单的前端微服务部署--qiankun

qiankun:基于single-spa封装,开箱即用。

一、主应用接入

1、安装qiankun

npm i qiankun -S

2、主应用注册子应用

//children-app.ts
import { registerMicroApps } from 'qiankun';
import shared from "./shared";
registerMicroApps([
  {
    name: 'subapp',
    entry: 'http://localhost:3001',
    container: '#subapp',
    activeRule: '#/subapp'
  }
]);

//入口文件 main.ts
import './children-app';

3、在主应用的路由页面加载子应用

import { start } from 'qiankun';
onMounted(() => {
  if (!window.qiankunStarted) {
    window.qiankunStarted = true;
    start();
  }
})

二、子应用接入

1、安装

npm i qiankun vite-plugin-qiankun -S

2、修改打包配置项

//vite.config.ts
import qiankun from 'vite-plugin-qiankun';
export default defineConfig({
  base: 'http://localhost:3001/', //base设为绝对路径
  plugins: [
    vue(),
    qiankun('flow-graph', {
      useDevMode: true
    })
  ]
});

3、修改入口文件


//main.ts
import { createApp } from 'vue'
import App from './App.vue'
import router from './router'
import {
  renderWithQiankun,
  qiankunWindow
} from 'vite-plugin-qiankun/dist/helper';
if (!qiankunWindow.__POWERED_BY_QIANKUN__) {
  createApp(App).use(router).mount('#app');
} else {
  let app: VueApp<Element>;
  renderWithQiankun({
    mount(props) {
      console.log('--mount');
      app = createApp(App);
      app
        .use(router)
        .mount(
          (props.container
           ? props.container.querySelector('#app')
           : document.getElementById('app')) as Element
        );
    },
    bootstrap() {
      console.log('--bootstrap');
    },
    update() {
      console.log('--update');
    },
    unmount() {
      console.log('--unmount');
      app?.unmount();
    }
  });
}

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冉然

你的鼓励对我很重要

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值