当前位置: 首页 > news >正文

qiankun微前端 主应用vue3+vite、子应用vue3+vite

qiankun微前端 主应用vue3+vite、子应用vue3+vite

  • 项目目录结构
  • 主应用
    • 创建主应用:
    • 安装qiankun
    • 配置qiankun
    • 挂载 qiankun
    • 添加子应用展示容器
  • 子应用
    • 创建子应用
    • 安装插件
    • 配置 qiankun

qiankun 官网

项目目录结构

  • qiankun-base 主应用 vue3 + vite
  • qiankun-project-1 子应用 vue3 + vite
  • qiankun-project-2 子应用 vue3 + vite
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

主应用

创建主应用:

  • 创建vue3 + vite 项目:
npm create vue@latest
  • 安装 Element-Plus 组件库

安装配置方法请看Element-Plus官网:https://cn.element-plus.org/zh-CN/

安装qiankun

npm install qiankun -S

配置qiankun

  • src 目录中创建 qiankun文件夹,并创建index.jsconfig.js文件:
  • config.js 文件中配置子应用路由,示例代码如下:
export default {subApps: [{name: 'vue1', // 子应用名称,必须跟子应用 package.json 中的 name 一致entry: 'http://localhost:3001/vue1', // 子应用入口,本地环境下指定端口container: '#vue1', // 挂载子应用的 DOMactiveRule: '/vue1', // 路由匹配规则props: {}, // 主应用与子应用通信传值},{name: 'vue2', // 子应用名称,必须跟子应用 package.json 中的 name 一致entry: 'http://localhost:3002/vue2', // 子应用入口,本地环境下指定端口container: '#vue2', // 挂载子应用的 DOMactiveRule: '/vue2', // 路由匹配规则props: {}, // 主应用与子应用通信传值}]
}
  • index.js 文件中注册子应用,并启动微服务,示例代码如下:
import { registerMicroApps, start } from 'qiankun'
import config from './config.js' // 引入的时候必须加 .js 要不然会报错const { subApps } = config// 注册子应用
export function registerApps() {try {registerMicroApps(subApps, {beforeLoad: [async app => {// console.log('before load', app)}],beforeMount: [async app => {// console.log('before mount', app)}],afterUnmount: [async app => {// console.log('before unmount', app)}]})} catch (err) {console.warn('qiankun 报错信息', err);}
}// 启动
export function qiankunStart() {registerApps()// 启动微服务start({sandbox: {experimentalStyleIsolation: true, // 样式隔离},})
}

挂载 qiankun

  • main.js文件中挂载qiankun,示例代码如下:
// 引入qiankun配置
import { qiankunStart } from '@/qiankun/index.js'// 启动qiankun
qiankunStart()

在这里插入图片描述

添加子应用展示容器

  • App.vue或者别的页面添加子应用展示容器,示例代码如下:
<!-- 菜单-->
<el-menu-item index="/vue1"><span>项目1</span></el-menu-item><el-menu-item index="/vue2"><span>项目2</span></el-menu-item><!--容器-->
<!-- 子应用容器 --><div id="vue1"></div><div id="vue2"></div>
  • App.vue代码如下:
<template><div
http://www.lqws.cn/news/202465.html

相关文章:

  • 使用 C++/OpenCV 创建动态流星雨特效 (实时动画)
  • ngx_stream_geo_module在传输层实现高性能 IP Region 路由
  • 学习STC51单片机30(芯片为STC89C52RCRC)
  • 【论文阅读笔记】《A survey on deep learning approaches for text-to-SQL》
  • 以SMMUv2为例,使用Trace32可视化操作SMMU的常用命令详解
  • 深入理解 Agent 与 LLM 的区别:从智能体到语言模型
  • 反向传播的核心是什么:计算损失函数对可训练参数的梯度=== 损失函数能通过计算图连接到可训练参数
  • 快速运行Dify前端,无需搭建后端环境
  • CADisplayLink、NSTimer、GCD定时器
  • 变幻莫测:CoreData 中 Transformable 类型面面俱到(一)
  • opencv_stereoRectify源码解析
  • 客户端和服务器已成功建立 TCP 连接【输出解析】
  • Clahs——问题解决:软件所有节点均超时
  • 能上Nature封面的idea!强化学习+卡尔曼滤波
  • C++之STL--list
  • 智能客服路由实战之RunnableBranch条件分支
  • 复旦联合百度发布Hallo4:让AI肖像“活”起来!新型扩散框架实现高保真音频驱动动画生成!
  • Python 函数全攻略:函数进阶(生成器、闭包、内置函数、装饰器、推导式)
  • AI大模型:(二)3.2 Llama-Factory微调训练deepseek-r1实践
  • 微前端架构下的B端页面设计:模块化与跨团队协作的终极方案
  • 【图像处理基石】如何构建一个简单好用的美颜算法?
  • 向 AI Search 迈进,腾讯云 ES 自研 v-pack 向量增强插件揭秘
  • JAVA理论第五章-JVM
  • JVM 垃圾回收器 详解
  • LVGL手势识别事件无上报问题处理记录
  • C++图书管理
  • 《前缀和》题集
  • [yolov11改进系列]基于yolov11融合改进检测头特征融合模块AFPN的python源码+训练源码
  • CCPC chongqing 2025 H
  • 振动力学:多自由度系统