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

乾坤qiankun的使用

vue2 为主应用 react 为子应用

在项目中安装乾坤

yarn add qiankun # 或者 npm i qiankun -S

vue主应用

在main.js中新增 (需要注意的是路由模型为history模式)

registerMicroApps([{name: 'reactApp',entry: '//localhost:3011',container: '#container',//主应用挂在子应用的容器id名称activeRule: '/app-react',//主应用挂在子应用的路由名称},{name: 'vueApp',entry: '//localhost:8080',container: '#container',activeRule: '/app-vue',},
]);

react 子应用:

修改 index.js文件

	import React from 'react';
import ReactDOM from 'react-dom/client';
import App from './App';
import { HashRouter  } from 'react-router-dom';
function render(props) {const { container } = props;// console.log('====================================');console.log(container);console.log('====================================');// container 存在 说明是作为子应用运行 不存在则是独立运行const root = ReactDOM.createRoot(container ? container.querySelector('#appRoot') : document.getElementById('appRoot'));//需要注意的是 appRoot 和 public目录下index.html 中div的id名称保持一致root.render(<HashRouter ><App /></HashRouter>
);
}// 如果是独立运行
if (!window.__POWERED_BY_QIANKUN__) {render({});
}export async function bootstrap() {console.log('react app bootstraped');
}export async function mount(props) {console.log('react app mounted', props);render(props);
}export async function unmount(props) {const { container } = props;const root = ReactDOM.createRoot(container ? container.querySelector('#root') : document.getElementById('root'));root.unmount();
}

修改webpack配置,安装craco

yarn add react-app-rewired 或 npm i -D react-app-rewired

根目录下新增 config-overrides.js文件

const { name } = require('./package');module.exports = {webpack: (config) => {config.output.library = `${name}-[name]`;config.output.libraryTarget = 'umd';// config.output.jsonpFunction = `webpackJsonp_${name}`;config.output.globalObject = 'window';return config;},devServer: (_) => {const config = _;config.headers = {'Access-Control-Allow-Origin': '*',};config.historyApiFallback = true;config.hot = false;config.watchContentBase = false;config.liveReload = false;return config;},
};

修改package.json文件

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

这里端口号需要和子应用挂在的端口号保持一致

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

如在主应用在挂在子应用时遇到

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

需要再子应用 package.json 中 eslintConfig 中新增

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

[外链图片转存中…(img-5Wnjp92F-1748775941845)]

需要再子应用 package.json 中 eslintConfig 中新增

[外链图片转存中…(img-YZw30X77-1748775941845)]

参考链接 React 18 配置 QianKun:主应用【React 18】+ 微应用【React 18】前端技能提升 react - 掘金

相关文章:

乾坤qiankun的使用

vue2 为主应用 react 为子应用 在项目中安装乾坤 yarn add qiankun # 或者 npm i qiankun -Svue主应用 在main.js中新增 &#xff08;需要注意的是路由模型为history模式&#xff09; registerMicroApps([{name: reactApp,entry: //localhost:3011,container: #container,/…...

从仿射矩阵得到旋转量平移量缩放量

仿射变换原理 仿射变换是一种线性变换&#xff0c;可以包括平移、旋转、缩放和剪切等操作。其一般公式可以表示为&#xff1a; $$\mathbf{x’} A \mathbf{x} \mathbf{b} ] 其中&#xff1a; (\mathbf{x}) 是输入向量&#xff0c;通常表示一个点在二维或三维空间中的坐标。(…...

Dockerfile 使用多阶段构建(build 阶段 → release 阶段)后端配置

错误Dockerfile配置示例&#xff1a; FROM python:3.11 as buildENV http_proxyhttp://172.17.0.1:7890 ENV https_proxyhttp://172.17.0.1:7890WORKDIR /appENV PYTHONPATH/app# Install Poetry # RUN curl -sSL https://install.python-poetry.org | POETRY_HOME/opt/poetry…...

Docker 镜像深度剖析:构建、管理与优化

一、前言 在容器化浪潮中&#xff0c;Docker镜像已成为构建可移植、标准化部署服务的基石。优质的镜像不仅能提升构建效率&#xff0c;更显著影响运行时性能和资源利用率。 本文将深入剖析Docker镜像的底层架构与工作原理&#xff0c;并通过实战案例详细演示镜像构建与优化技巧…...

使用 Flutter 开发 App 时,想要根据 Figma 设计稿开发出响应式 UI 界面

在使用 Flutter 开发 App 时&#xff0c;想要根据 Figma 设计稿开发出响应式 UI 界面&#xff08;Responsive UI&#xff09;&#xff0c;以适配不同尺寸和分辨率的手机设备&#xff0c;需要从 设计阶段 和 编码实现阶段 双向配合。以下是详细的实现思路与方法&#xff1a; &am…...

Flink2.0及Flink-operater在K8S上部署

1.查找镜像 dockerhub访问不了的可以访问这个查找镜像 https://docker.aityp.com/ 在docker服务器上拉取flink镜像到本地 拉取镜像到你的docker服务器本地 docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/apache/flink:2.0.0-scala_2.12-java17 将docker服…...

PH热榜 | 2025-06-03

1. Knowledge 标语&#xff1a;像认识朋友一样去销售给潜在客户&#xff0c;因为你其实了解他们&#xff01; 介绍&#xff1a;Knowledge 是一个针对个人的销售智能平台&#xff0c;它利用行为数据和心理测评来识别市场上的潜在买家&#xff0c;并指导销售团队以最真实、最有…...

论文略读: STREAMLINING REDUNDANT LAYERS TO COMPRESS LARGE LANGUAGE MODELS

2025 ICLR 判断模型层的重要性->剪去不重要的层&#xff08;用轻量网络代替&#xff09; 这种方法只减少了层数量&#xff0c;所以可以用常用的方法加载模型 层剪枝阶段 通过输入与输出的余弦相似度来判断各个层的重要性 具有高余弦相似度的层倾向于聚集在一起&#xff0c…...

mapbox高阶,生成并加载等时图

👨‍⚕️ 主页: gis分享者 👨‍⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍⚕️ 收录于专栏:mapbox 从入门到精通 文章目录 一、🍀前言1.1 ☘️mapboxgl.Map 地图对象1.2 ☘️mapboxgl.Map style属性1.3 ☘️Fill面图层样式1.4 ☘️symbol符号图层…...

深入剖析物联网边缘计算技术:架构、应用与挑战

在物联网&#xff08;IoT&#xff09;蓬勃发展的当下&#xff0c;海量设备产生的数据如潮水般涌来&#xff0c;对数据处理和响应速度提出了前所未有的挑战。边缘计算技术应运而生&#xff0c;成为物联网领域的关键支撑技术之一。它就像在物联网网络的“边缘”部署了一个个智能小…...

DeepSeek眼中的文明印记:山海经

一、山海经到底是怎么回事&#xff1f; 《山海经》是中国古代一部极具神秘色彩的文化典籍&#xff0c;成书时间跨度较大&#xff08;大致从战国至汉代&#xff09;&#xff0c;内容庞杂&#xff0c;涉及神话、地理、物产、巫术、医学、民俗等多个领域。关于它的性质&#xff0…...

在Mathematica中实现Newton-Raphson迭代

为了寻找方程 可以使用Newton-Raphson迭代方法&#xff1a; NRIter[func_, xzero_, n_ : 5] :Module[{pointlist {}, x, xold xzero, xnew, f, df, xl, xr, k},f[x_] func[x];df[x_] D[func[x], x];Do[(pointlist Join[pointlist, {{xold, 0}}, {{xold, f[xold]}}];xnew …...

【Ragflow】25.Ragflow-plus开发日志:excel文件解析新思路/公式解析适配

引言 RagflowPlus v0.3.0 版本中&#xff0c;增加了对excel文件的解析支持&#xff0c;但收到反馈&#xff0c;说效果并不佳。 以下测试文件内容来自群友反馈提供&#xff0c;数据已脱敏处理。 经系统解析后&#xff0c;分块效果如下&#xff1a; 可以看到&#xff0c;由于该…...

Python数据可视化科技图表绘制系列教程(一)

目录 创建多个坐标图形&#xff08;坐标系&#xff09; 图表的组成 创建图形与子图 创建子图1 创建子图2 创建子图3 创建子图4 创建子图5 添加图表元素 极坐标图1 极坐标图2 【声明】&#xff1a;未经版权人书面许可&#xff0c;任何单位或个人不得以任何形式复制、…...

移除3D对象的某些部分点云

1&#xff0c;目的 移除3D对象指定区域的点云。效果 2&#xff0c;原理。 通过投影剔除指定区域外的点云数据。 3&#xff0c;主要的算子。 3.1&#xff0c;gen_image_gray_ramp 是 Halcon 中用于生成‌线性灰度渐变图像‌的算子 功能概述‌ 数学原理‌ 生成的图像灰度值…...

阿里云为何,一个邮箱绑定了两个账号

阿里云“幽灵账号”之谜&#xff1a;同一个邮箱注销后仍有两个账号&#xff1f;深度揭秘成因与终极解决方案&#xff01; 你是否曾在阿里云上使用同一个邮箱注册过多个账号&#xff0c;明明已经**“彻底”注销了其中一个**&#xff0c;却惊愕地发现系统里依然**“幽灵般”挂着…...

高效视频倍速播放插件推荐

软件介绍 本文介绍一款名为Global Speed的视频速度控制插件&#xff0c;该插件在插件市场评分极高&#xff0c;被公认为目前最好用的视频倍速插件之一。 插件安装与基本功能 安装Global Speed插件后&#xff0c;用户只需点击插件图标即可选择播放倍数&#xff0c;最高支持16…...

无他相机:专业摄影,触手可及

在数字摄影时代&#xff0c;手机摄影已成为许多人记录生活、表达创意的重要方式。无他相机正是这样一款专为摄影爱好者设计的相机应用程序&#xff0c;它不仅提供了专业级摄影设备的大部分功能&#xff0c;还通过简洁直观的操作界面&#xff0c;让每一位用户都能轻松上手&#…...

基于贝叶斯优化神经网络的光伏功率预测综述

基于贝叶斯优化神经网络的光伏功率预测综述 一、贝叶斯优化的基本原理与核心组件 贝叶斯优化&#xff08;Bayesian Optimization, BO&#xff09;是一种基于概率模型的全局优化方法&#xff0c;特别适用于高成本评估的黑盒函数优化问题。其核心由代理模型和采集函数构成&…...

【C++11】折叠引用和完美转发

目录 一. 前言二. 引用折叠引用折叠的规则 三. 完美转发完美转发适用场景完美转发底层实现思考1思考2 一. 前言 在函数传参时&#xff0c;如果想保持某个参数的属性不改变&#xff0c;需要完美转发&#xff0c;而完美转发的实现需要折叠引用的帮助 二. 引用折叠 在语法上&am…...

数据结构:递归:自然数之和

目录 递归解法 &#x1f539;第一步&#xff1a;定义本质问题 &#x1f539;第二步&#xff1a;分解问题结构 &#x1f539;第三步&#xff1a;定义初始条件 &#x1f539;第四步&#xff1a;递归思想的自然生成 循环解法 &#x1f539;第 1 步&#xff1a;定义问题最小…...

网易 - 灵犀办公文档

一. 企业介绍 网易是中国领先的互联网技术公司&#xff0c;为用户提供免费邮箱、游戏、搜索引擎服务&#xff0c;通过开设新闻、娱乐、体育等30多个内容频道&#xff0c;以及博客、视频、论坛等互动交流&#xff0c;网聚人的力量。 为了给中小企业和个人打造一款综合性办公产…...

【C++】模板与特化技术全面教程(claude sonnet 4)

第一章&#xff1a;模板的基础概念 (Template Fundamentals) 1.1 什么是模板&#xff1f; 模板 (Template) 是C中的一种泛型编程 (Generic Programming) 机制&#xff0c;它允许我们编写与类型无关的代码。想象一下&#xff0c;如果我们要为不同的数据类型编写相同逻辑的函数&a…...

ABAP设计模式之---“高内聚,低耦合(High Cohesion Low Coupling)”

“高内聚、低耦合”是面向对象编程中非常重要的设计原则&#xff0c;它有助于提高代码的可维护性、扩展性和复用性。 1. 初衷&#xff1a;为什么会有这个原则&#xff1f; 在软件开发中&#xff0c;随着业务需求的复杂化&#xff0c;代码难免会变得越来越庞大。如果开发者将一…...

RagFlow优化代码解析(一)

引子 前文写到RagFlow的环境搭建&推理测试&#xff0c;感兴趣的童鞋可以移步&#xff08;RagFlow环境搭建&推理测试-CSDN博客&#xff09;。前文也写过RagFLow参数配置&测试的文档&#xff0c;详见&#xff08;&#xff09;。很少写关于具体代码的blog&#xff0c…...

【python与生活】用 Python 从视频中提取音轨:一个实用脚本的开发与应用

在当今数字化的时代&#xff0c;视频内容无处不在。无论是学习教程、会议记录、在线讲座还是娱乐视频&#xff0c;我们每天都会接触到大量的视频资源。有时候&#xff0c;我们可能只对视频中的音频部分感兴趣&#xff0c;比如提取讲座的音频用于后续收听&#xff0c;或者从电影…...

深度强化学习赋能城市消防优化,中科院团队提出DRL新方法破解设施配置难题

在城市建设与发展中&#xff0c;地理空间优化至关重要。从工业园区选址&#xff0c;到公共服务设施布局&#xff0c;它都发挥着关键作用。但传统求解方法存在诸多局限&#xff0c;如今&#xff0c;深度学习技术为其带来了新的转机。 近日&#xff0c;在中国地理学会地理模型与…...

云原生周刊:探索 Gateway API v1.3.0

开源项目推荐 WatchAlert WatchAlert 是一个轻量级、云原生的多数据源监控告警引擎&#xff0c;支持 AI 驱动的智能告警分析&#xff0c;旨在帮助升级您的监控系统架构。该项目基于 Go 和 React 开发&#xff0c;提供了现代化的前后端架构。后端使用 Go 语言&#xff0c;结合…...

008房屋租赁系统技术揭秘:构建智能租赁服务生态

房屋租赁系统技术揭秘&#xff1a;构建智能租赁服务生态 在房地产租赁市场日益活跃的当下&#xff0c;房屋租赁系统成为连接房东与租客的重要数字化桥梁。该系统集成用户管理、房屋信息等多个核心模块&#xff0c;面向管理员、房东和用户三类角色&#xff0c;通过前台展示与后…...

Python训练打卡Day41

简单CNN 知识回顾 数据增强卷积神经网络定义的写法batch归一化&#xff1a;调整一个批次的分布&#xff0c;常用与图像数据特征图&#xff1a;只有卷积操作输出的才叫特征图调度器&#xff1a;直接修改基础学习率 卷积操作常见流程如下&#xff1a; 1. 输入 → 卷积层 → Batch…...