搭建一个qiankun的微前端应用【未完】

使用qiankun

你好! 开始之前可以先看看官网信息qiankun

准备主应用的vue项目

安装qiankun

按照官网的快速上手内容进行主应用的安装。
1,安装qiankun项目目录
2,在主应用中注册微应用
在这里插入图片描述
根据微应用,主应用注册
在这里插入图片描述

import Vue from 'vue'
import App from './App'
import router from './router'
import { registerMicroApps, setDefaultMountApp, start  } from 'qiankun';

Vue.config.productionTip = false

/* eslint-disable no-new */
new Vue({
  el: '#app',
  router,
  components: { App },
  template: '<App/>'
})


registerMicroApps([

  {
    name: 'vueApp',
    entry: '//localhost:8080',
    container: '#container',
    activeRule: '/app-vue',
  },
]);
setDefaultMountApp("/app-vue");
// 启动 qiankun
start();

准备一个vue的微应用

微应用导出生命周期

微应用导出主应用生命周期

新增core文件夹,在core目录下新增public-path.js

	if (window.__POWERED_BY_QIANKUN__) {
	  __webpack_public_path__ = window.__INJECTED_PUBLIC_PATH_BY_QIANKUN__;
	}

public-path.js

修改入口main.js文件

参考官方文档修改main.js文件为
在这里插入图片描述

import '../core/public-path'
// import '../core/life-cycle'
import Vue from 'vue'
import App from './App'
import router from './router'
import store from './store';
// Vue.config.productionTip = false
// let router = null;
let instance = null;
/**
 * @name 子应用实例化函数
 *
 * */
const render = ({routerBase,container}={})=>{
  Vue.prototype.$eventBus = new Vue();
  Vue.config.productionTip = false;
  instance = new Vue({
    router,
    store,
    render:(h) => h(App),
  }).$mount(container?container.querySelector('#app'):'#app')
}
// 独立运行时
if(!window._POWERED_BY_QIANKUN_){
  render();
}

export async function bootstrap() {
  console.log('[vue] vue app bootstraped');
}
export async function mount(props) {
  console.log('[vue] props from main framework', props);
  render(props);
}
export async function unmount() {
  instance.$destroy();
  instance.$el.innerHTML = '';
  instance = null;
}

跨域(问题还未解决)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值