JeecgBoot低代码平台 Qiankun 微前端集成指南:主应用配置全流程

简介: 当 JeecgBoot低代码项目发展到一定规模,单体前端的弊端开始显现:模块耦合严重、构建时间激增、团队协作困难。微前端架构允许将不同业务模块拆分为独立的子应用,各自开发、独立部署,通过 Qiankun 框架在运行时动态组合。 本文聚焦于如何将 JeecgBoot-Vue3 配置为 Qiankun 微前端的主应用(基座),接管路由分发和子应用生命周期管理。 在 JeecgBoot低代码主应用项目中安装 Qiankun:

JeecgBoot AI专题研究 | JeecgBoot低代码微前端架构落地实践


微前端解决了什么问题?

当 JeecgBoot低代码项目发展到一定规模,单体前端的弊端开始显现:模块耦合严重、构建时间激增、团队协作困难。微前端架构允许将不同业务模块拆分为独立的子应用,各自开发、独立部署,通过 Qiankun 框架在运行时动态组合。

本文聚焦于如何将 JeecgBoot-Vue3 配置为 Qiankun 微前端的主应用(基座),接管路由分发和子应用生命周期管理。

第一步:安装 Qiankun 依赖

在 JeecgBoot低代码主应用项目中安装 Qiankun:

pnpm add qiankun

第二步:配置子应用注册信息

JeecgBoot 已经预置了 Qiankun 集成的代码框架,只需要取消注释并配置三个核心文件:

src/qiankun/apps.ts — 子应用注册表

在这个文件中定义每个微应用的元数据:

const apps = [
  {
   
    name: 'qiankun-app',          // 子应用唯一标识
    entry: '//localhost:8001',     // 子应用入口地址
    container: '#subapp-viewport', // 挂载容器
    activeRule: '/qiankun-app',    // 路由激活规则
  },
];

src/qiankun/state.ts — 全局状态管理

建立主应用与子应用之间的数据共享通道,用于传递用户信息、权限数据、主题配置等全局状态。

src/qiankun/index.ts — 注册与启动

注册所有子应用并配置生命周期钩子(加载前、挂载后、卸载后等),这是微前端运行时的核心调度逻辑。

第三步:配置环境变量

不同环境下子应用的入口地址不同,需要在环境变量文件中分别配置。

开发环境 .env.development:

VITE_APP_SUB_qiankun-app = '//localhost:8001/qiankun-app'

生产环境 .env.production:

VITE_APP_SUB_qiankun-app = '[生产域名]/qiankun-app'

同时,在环境变量中开启 Qiankun 全局开关:

VITE_GLOB_APP_OPEN_QIANKUN=true

第四步:子应用侧的适配要求

子应用要接入 JeecgBoot低代码主应用,需要满足以下条件:

1. 配置运行时公共路径

创建 public-path.js 文件,确保子应用在 Qiankun 沙箱环境下能正确加载静态资源:

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

2. 导出生命周期函数

子应用必须导出以下四个生命周期函数供主应用调用:

  • bootstrap() — 初始化,仅在首次加载时调用
  • mount() — 挂载,每次进入子应用时调用
  • unmount() — 卸载,每次离开子应用时调用
  • update() — 更新,主应用传递数据变更时调用

3. 构建输出配置

子应用的 vue.config.js 需要配置 UMD 格式输出,并开启 CORS 跨域头:

module.exports = {
   
  output: {
   
    library: 'qiankun-app',
    libraryTarget: 'umd',
  },
  devServer: {
   
    headers: {
    'Access-Control-Allow-Origin': '*' },
  },
};

实践中的注意事项

  • 样式隔离:Qiankun 默认的沙箱机制可以隔离 JS 全局变量,但 CSS 隔离需要额外配置 strictStyleIsolation 或 experimentalStyleIsolation
  • 路由冲突:主应用和子应用的路由前缀不能重叠,建议每个子应用使用独立的路由命名空间
  • 通信机制:简单场景使用 Qiankun 内置的 initGlobalState,复杂场景可以引入 EventBus 或状态管理库

总结

JeecgBoot低代码平台对 Qiankun 微前端的集成已经做了大量预置工作,开发者只需取消注释、配置环境变量即可快速启用。微前端架构特别适合多团队协作的大型项目,能够在保持整体统一性的同时给予各业务团队充分的技术自主权。


目录
相关文章
|
Java Linux
java查看CPU使用过高(linux)
java查看CPU使用过高(linux)
354 0
|
存储 NoSQL Ubuntu
在Ubuntu上安装Redis并学习使用get、set和keys命令
在Ubuntu上安装Redis并学习使用get、set和keys命令
|
算法 计算机视觉
yolov5 deepsort-船舶目标检测+目标跟踪+单目测距+速度测量(代码+教程)
yolov5 deepsort-船舶目标检测+目标跟踪+单目测距+速度测量(代码+教程)
|
Linux
linux常用命令-离线安装PM2
因为要部署应用的机器没有公网连接,所以直接npm install pm2是不可能了, 简单记录一下怎么离线安装pm2
1709 0
|
3月前
|
人工智能 运维 NoSQL
OpenSpec 三阶段工作流实操:从 Propose 到 Archive让代码返工率降到三分之一以下
OpenSpec是AI原生规范驱动开发(SDD)框架,以Propose→Apply→Archive三阶段强制工作流,将需求精准转为AI可读、可验、可追溯的结构化规范,实测降低代码返工率超2/3。
443 0
|
4月前
|
机器学习/深度学习 Ubuntu 机器人
基于 Isaac Lab 的 Unitree Go2 四足机器人RL控制项目
基于 NVIDIA Isaac Lab 的 Unitree Go2 四足机器人强化学习工程已整理开源。项目包含 Task1 平地速度跟踪、Task2 多地形运动、Task3 自主导航避障、Task4 Sim2Real / RMA 抗扰训练,统一使用 skrl PPO,并提供 Ubuntu / Windows 脚本、world/env 测试、smoke training、日志与 checkpoint 管理。适合参考 Isaac Lab 四足机器人训练流程。具体内容请参考github链接进行阅读。
|
7月前
|
人工智能 前端开发 JavaScript
JeecgBoot低代码平台作为 Qiankun 子应用接入指南
在某些企业架构中,JeecgBoot低代码平台并非作为独立系统运行,而是需要嵌入到已有的微前端体系中,作为一个子应用被其他主应用调度和管理。典型场景包括:集团统一门户集成、多系统聚合平台、渐进式系统迁移等。 本文将详细介绍如何将 JeecgBoot-Vue3 前端项目配置为 Qiankun 微前端框架的子应用。 在你的 Qiankun 主应用中,需要注册 JeecgBoot低代码子应用的基本信息: name: 'jeecg-sub-app',
356 2
|
10月前
|
uml C语言
系统时序图
时序图(Sequence Diagram)是UML中描述对象间消息传递时间顺序的交互图。横轴为对象,纵轴为时间,通过生命线、控制焦点和消息等元素,直观展现系统动态协作过程,强调交互的时间顺序与并发行为,常用于分析和设计系统逻辑。
|
10月前
|
缓存 前端开发 JavaScript
头条面经
涵盖前端、网络、JS核心、框架及算法等多方面知识,包括深拷贝、双向绑定、HTTP缓存、跨域、Vue原理、TCP/UDP、设计模式、事件循环、类型判断、闭包、原型链、性能优化等高频面试题,全面考察技术深度与综合能力。
|
人工智能 IDE 开发工具
给IntelliJ IDEA添加AI功能
这篇文章讲解了如何在IntelliJ IDEA中安装和使用阿里云开发的通义灵码插件,以增强IDE的人工智能辅助编程功能。
11860 0
给IntelliJ IDEA添加AI功能

热门文章

最新文章