记录第一次用微前端qiankun 基座是vue2 子应用也是vue2

首先给出qiankun官网链接: https://qiankun.umijs.org/zh

1.主应用

1.1前置

1.1.1

首先路由模式建议要用history模式(微应用也是!!!)
在这里插入图片描述

然后把路由懒加载的路径注释掉,因为点击路由跳转的时候需要去微应用中去寻找

mode:'history',

在这里插入图片描述
主应用端口号为 8080(下面例子中微应用端口为8081)
在这里插入图片描述

1.1.2

在vue文件中页面展示的地方,平常写路由占位的地方 同级下面写

<router-view />
<div id="sub-app"></div>

在这里插入图片描述

1.2安装qiankun

npm i qiankun -S   //只需要主应用中安装,微应用中无需安装

1.3注册微应用并启动

import { registerMicroApps, start } from 'qiankun';

registerMicroApps([
  {
    name: 'sub-vue2',
    entry: '//localhost:8081',
    container: '#container',//容器
    activeRule: '/sub-vue2',
  },
]);
// 启动 qiankun
start();

2.微应用(也是vue2)

根据官网给的示例来进行
https://qiankun.umijs.org/zh/guide/tutorial#vue-%E5%BE%AE%E5%BA%94%E7%94%A8

2.1在 src 目录新增 public-path.js

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

2.2入口文件 main.js 修改

// new Vue({
//   router,
//   store,
//   i18n,
//   render: (h) => h(App),
// }).$mount("#app");


import VueRouter from 'vue-router';

import routes from './router/routes';


let router = null;
let instance = null;
function render(props = {}) {
  const { container } = props;
  router = new VueRouter({
    base: window.__POWERED_BY_QIANKUN__ ? '/sub-vue2/' : '/',
    mode: 'history',
    routes,
  });

  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;
  router = null;
}

在这里插入图片描述

2.3修改vue.config.js文件

devServer: {
    headers: {
      'Access-Control-Allow-Origin': '*',
    },
    port: 8081,
  },
  
configureWebpack: {
	output: {
	      library: `sub-vue2`,
	      libraryTarget: 'umd', // 把微应用打包成 umd 库格式
	      jsonpFunction: `webpackJsonp_sub-vue2`,
	    },
    }

在这里插入图片描述

3.常见问题

3.1[import-html-entry]: error occurs while excuting xxx script http://xxx.xxx.xxx/x.js

官网给出的说明为:
https://qiankun.umijs.org/zh/faq#import-html-entry-error-occurs-while-excuting-xxx-script-httpxxxxxxxxxxjs
第一行只是辅助 真正的报错为第二行 切记!!!
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值