续上篇 qiankun 微前端配置

上篇文章地址:微前端框架 qiankun 配置使用【基于 vue/react脚手架创建项目 】-CSDN博客

主应用:

src/main.js  配置:

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

registerMicroApps([
  {
    name: 'react app', // app name registered
    entry: 'http://localhost:3000/index.js',
    container: '#react',
    activeRule: '/react',
    sandbox: {
      strictStyleIsolation: true // 开启样式隔离
    }
  },
  {
    name: 'vue app',
    entry: 'http://localhost:8888/',
    container: '#vue',
    activeRule: '/vue',
    sandbox: {
      strictStyleIsolation: true // 开启样式隔离
    }
  },
]);

start();
Vue.config.productionTip = false

new Vue({
  router,
  render: h => h(App)
}).$mount('#app')

src/App.vue  配置:

<template>
  <div>
    qiankun
    <router-link to="/vue">vue</router-link>
    <router-link to="/react">react</router-link>
    <router-view v-show="$route.name"></router-view>

    <div id="vue"></div>
    <div id="react"></div>
  </div>
</template>
 
<style>
</style>

vue微应用:

src/main.js 配置:

import Vue from 'vue'
import App from './App.vue'
Vue.config.productionTip = false
let instance = null;
function render(props) {
  console.log(props);
  // props 组件通信
  instance = new Vue({
    render: h => h(App)
  }).$mount('#app') // 这里是挂载到自己的HTML中,基座会拿到这个挂载后的HTML,将其插入进去
}
 
if (!window.__POWERED_BY_QIANKUN__) { // 如果是独立运行,则手动调用渲染
  render();
}
if(window.__POWERED_BY_QIANKUN__){ // 如果是qiankun使用到了,则会动态注入路径
  // __webpack_public_path__ = window.__INJECTED_PUBLIC_PATH_BY_QIANKUN__;
}
 
// 根据 qiankun 的协议需要导出 bootstrap/mount/unmount
export async function bootstrap(props) {
  console.log(props);
}
export async function mount(props) {
  render(props);
}
export async function unmount(props) {
  console.log(props);
  instance.$destroy();
}

vue.config.js  配置:

module.exports = {
  devServer: {
    port: 8888,
    headers:{
      'Access-Control-Allow-Origin': '*' // 允许跨域
    }
  },
  configureWebpack: {
    output: {
      library: 'vue app',//这里的名称和主应用的name一致!!!
      libraryTarget: 'umd'
    }
  }
};

react微应用:

src/index.js  配置

import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';
 
function render(){
  ReactDOM.render(
    <React.StrictMode>
      <App />
    </React.StrictMode>,
    document.getElementById('root')
  );
}
if(!window.__POWERED_BY_QIANKUN__){
  render();
}
export async function bootstrap(){
 
}
export async function mount() {
  render()
}
export async function unmount(){
  ReactDOM.unmountComponentAtNode( document.getElementById('root'));
}

config/webpack.config.js  配置

如果没有可以看看我的另一篇文章:react 项目如何暴露 webpack配置文件-CSDN博客

在output配置下加入:

library: `react app`,//和主应用配置的name一致
libraryTarget: 'umd'

如图:

 vue:

 react:

相关推荐

  1. 前端框架 qiankun

    2024-03-16 04:54:02       41 阅读
  2. 前端qiankun

    2024-03-16 04:54:02       12 阅读
  3. qiankun(乾坤)前端框架简介

    2024-03-16 04:54:02       27 阅读
  4. 一个简单的前端服务部署--qiankun

    2024-03-16 04:54:02       14 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-16 04:54:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-16 04:54:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-16 04:54:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-16 04:54:02       20 阅读

热门阅读

  1. 【kubernetes-kafka】使用kafka client测试

    2024-03-16 04:54:02       21 阅读
  2. honoka的键盘

    2024-03-16 04:54:02       17 阅读
  3. 【Linux】常用基础命令(二)

    2024-03-16 04:54:02       19 阅读
  4. Git 的基本概念和使用方式

    2024-03-16 04:54:02       16 阅读
  5. C语言学习(练习题)

    2024-03-16 04:54:02       22 阅读
  6. SSL证书从申请到签发到使用的流程

    2024-03-16 04:54:02       18 阅读
  7. 总结linux常用命令

    2024-03-16 04:54:02       18 阅读
  8. Docker中的常用命令

    2024-03-16 04:54:02       15 阅读
  9. Go语言的HTTP WEB Demo案例

    2024-03-16 04:54:02       20 阅读