微前端qiankun接入Vue和React项目

本文详细描述了如何在主应用Vue中嵌入子应用React18+umi,包括在Vue中安装和配置Qiankun,子应用的React项目设置,以及处理跨域问题的Nginx配置。
摘要由CSDN通过智能技术生成

业务场景:主应用vue,子应用react18+umi,使用乾坤嵌入子应用页面(子应用目前只有一个页面)

主应用(vue)工作

  1. 首先,在主应用vue中安装qiankun依赖
yarn add qiankun 或者 npm i qiankun --save
  1. 创建需要嵌入子应用的页面或者组件
<template>
  <div id="integrate-container" class="integrate-page"></div>
</template>

<script>
export default {
  name: 'IntegrateContainer',
};
</script>

<style lang="less">
.integrate-page {
  width: 100%;
  height: 100%;
  min-height: 100vh;
  border: 0;
  background: linear-gradient(180deg, #001034 0%, #000512 100%);
}
</style>
  1. 在main.js注册qiankun
// 微应用的注册信息
import { registerMicroApps, start } from 'qiankun';
registerMicroApps([
  {
    // 微应用的名称,后续微应用通过此名称进行识别
    name: 'serviceIntegrate',
    // 微应用的入口
    entry: 'https://ruianinfoscreen.ruijianai.com',
    // 微应用加载的容器,与上面的id需保持完全一致
    container: '#integrate-container',
    // 激活微应用的规则(路由),需要与路由文件的路径保持一致,同时需要与子应用嵌入页面的路由保持一致
    activeRule: '/service-integrate',
    // 向子应用传递参数
    props: {
      data: ""
    }
  },
]);

// 启动乾坤
start();
  1. 路由文件添加该页面的路由
 {
   path: '/service-integrate',
   name: "serviceIntegrate",
   component: () => import('../views/Integrate/Index.vue'),
 },

子应用(react18+umi)工作

  1. 安装@umijs/plugin-qiankun依赖
yarn add @umijs/plugin-qiankun 或者 npm i @umijs/plugin-qiankun --save
  1. umirc.ts中开启qiankun的配置
qiankun: {
  slave: {},
},
// 开启全局初始状态管理,用于乾坤初始化接受参数时使用
initialState: {},
  1. package.json中添加name字段
{
  "name": "service-integrate",
}
  1. 在app.tsx中接收参数
let globalData: any
export const qiankun = {
  // 应用加载之前
  async bootstrap(props: any) {
    console.log('service-integrate bootstrap', props)
  },
  // 应用 render 之前触发
  async mount(props: any) {
    console.log('service-integrate mount', props)
    globalData = cloneDeep(props)
  },
  // 应用卸载之后触发
  async unmount(props: any) {
    console.log('service-integrate unmount', props)
  },
}
// 将初始化qiankun接受参数设置为全局初始状态,以便在页面中使用
export async function getInitialState() {
  // 页面中使用时const { initialState } = useModel('@@initialState')获取
  return globalData
}

部署到线上后会发现遇到跨域的问题,此时需要配置nginx

需要在子应用的nginx配置中加上下面这个配置,允许所有源都可以访问

set $core_orgin $http_origin;
add_header 'Access-Control-Allow-Origin' $core_orgin;
add_header 'Access-Control-Allow-Credentials' 'true' always;
  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
qiankun是一个由蚂蚁金服开源的前端解决方案,旨在解决多个团队或多个子系统之间协同开发的问题,同时提高前端应用的可维护性和可扩展性。 前端是指将一整个网站或应用分为若干个小的部分,每个部分都是一个独立的子应用,可以由不同的团队或开发者进行独立开发和管理,并最终将这些子应用集成起来形成一个完整的网站或应用。前端可以提高应用的可伸缩性、可维护性和灵活性,同时为团队之间协同开发提供了更好的支持。 qiankun通过使用VueReact等主流框架来构建子应用,并通过一个主应用来动态加载和协调这些子应用,有效解决了子应用的模块化开发、独立部署和协同开发的问题。此外,qiankun还提供了完备的生命周期钩子函数和通信机制,方便子应用与主应用之间进行数据交互和状态同步。 除此之外,qiankun还支持多种场景下的子应用加载方式,包括iframe、HTTP、和WebComponents等,灵活地满足了不同场景下的应用需求。同时,qiankun还提供了插件化的开发模式,可以集成多种生态工具进行开发,如React Devtools、Vue Devtools、Webpack等。 综上所述,qiankun是一款非常优秀的前端解决方案,不仅提升了前端的可维护性和可扩展性,同时为团队协同开发提供了更好的支持,对于企业级应用开发来说具有非常重要的意义。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值