乾坤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 - 掘金

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/pingmian/83482.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PostgreSQL的扩展 auth_delay

PostgreSQL的扩展 auth_delay auth_delay 是 PostgreSQL 提供的一个安全相关扩展&#xff0c;主要用于防止暴力破解攻击。它通过在认证失败后引入人为延迟来增加暴力破解的难度。 一、扩展基础 功能&#xff1a;在认证失败后增加延迟目的&#xff1a;减缓暴力破解和字典攻击…

Web前端为什么要打包?Webpack 和 Vite 如何助力现代开发?

一. 为什么要使用框架库? 1.1 传统网页与现代前端的差异 在最早期的网页开发中,我们只需要写几个.html文件,配上.css和.js文件,浏览器直接加载就能展现页面,每个文件都是独立的静态资源,简单且直观 但现在网站越来越复杂了: 需要用到最新的js语法(比如ES6)使用框架(Vue…

使用pdm+uv替换poetry

用了好几年poetry了&#xff0c;各方面都还挺满意&#xff0c;就是lock实在太慢&#xff1b; 已经试用pdmuv一段时间了&#xff0c;确实是快&#xff0c;也基本能覆盖poetry的功能。 至于为什么用pdmuv&#xff0c;而不是只用uv&#xff0c;原因很多&#xff0c;有兴趣的可以…

java后端生成心电图-jfreechart

用jfreechart生成心电图 先上成功的图片 上代码 1.导入包 implementation org.jfree:jfreechart:1.5.4implementation org.jfree:jcommon:1.0.242.实现代码 对数据进行滤波 转换单位 package com.shinrun.infrastructure.util;import java.util.ArrayList; import java.ut…

微软Build 2025:Copilot Studio升级,解锁多智能体协作未来

微软Build 2025大会圆满落幕&#xff0c;作为年度科技盛会&#xff0c;它一直是开发与AI技术突破性创新的重要展示平台。对于工程师、创作者和领域专家来说&#xff0c;这是了解微软生态未来动向的关键时刻。今年&#xff0c;Microsoft Copilot Studio推出了一系列新功能&#…

LabVIEW杂草识别与精准喷洒

基于LabVIEW构建了一套集成机器视觉、智能决策与精准控制的农业杂草识别系统。通过高分辨率视觉传感器采集作物图像&#xff0c;利用 LabVIEW 的 NI Vision 模块实现图像颜色匹配与特征分析&#xff0c;结合 Arduino 兼容的工业级控制硬件&#xff0c;实现杂草定位与除草剂精准…

使用 Akamai 分布式云与 CDN 保障视频供稿传输安全

作者简介&#xff1a;David Eisenbacher 是 EZDRM 公司的首席执行官兼联合创始人&#xff0c;该公司是首家提供 "DRM 即服务" 的企业。作为 CEO&#xff0c;David 始终秉持为企业确立的使命&#xff1a;为视频服务商提供简洁有效的数字版权管理方案&#xff0c;助力其…

javascript 实战案例 二级联动下拉选框

本案例完全使用原生javascript实现&#xff0c;使用时只需填充platform_list二维数组即可&#xff0c;platform_list填充规则如下&#xff1a; [‘一级选项1’,‘二级选项11’,‘二级选项12’,‘二级选项13’,‘二级选项14’,…], [‘一级选项2’,‘二级选项21’,‘二级选项22’…

Elasticsearch集群最大分片数设置详解:从问题到解决方案

目录 前言 1 问题背景&#xff1a;重启后设置失效 2 核心概念解析 2.1 什么是分片(Shard)&#xff1f; 2.2 cluster.max_shards_per_node的作用 2.3 默认值是多少&#xff1f; 3 参数设置的两种方式 3.2 持久性设置(persistent) 3.2 临时设置(transient) 4 问题解决方…

Redis Sorted Set 深度解析:从原理到实战应用

Redis Sorted Set 深度解析&#xff1a;从原理到实战应用 在 Redis 丰富的数据结构家族中&#xff0c;Sorted Set&#xff08;有序集合&#xff09;凭借独特的设计和强大的功能&#xff0c;成为处理有序数据场景的得力工具。无论是构建实时排行榜&#xff0c;还是实现基于时间的…

Java并发编程:读写锁与普通互斥锁的深度对比

在Java并发编程中&#xff0c;锁是实现线程安全的重要工具。其中&#xff0c;普通互斥锁&#xff08;如synchronized和ReentrantLock&#xff09;和读写锁&#xff08;ReentrantReadWriteLock&#xff09;是两种常用的同步机制。本文将从多个维度深入分析它们的区别、适用场景及…

《云原生安全攻防》-- K8s网络策略:通过NetworkPolicy实现微隔离

默认情况下&#xff0c;K8s集群的网络是没有任何限制的&#xff0c;所有的Pod之间都可以相互访问。这就意味着&#xff0c;一旦攻击者入侵了某个Pod&#xff0c;就能够访问到集群中任意Pod&#xff0c;存在比较大的安全风险。 在本节课程中&#xff0c;我们将详细介绍如何通过N…

Log4j2、Fastjson特征流量分析

文章目录 一、Log4j2流量特征分析1. 漏洞原理简述2. 核心流量特征&#xff08;1&#xff09;请求特征&#xff08;2&#xff09;响应特征&#xff08;3&#xff09;日志特征 3.检测与防御建议 二、fastjson流量特征分析1.漏洞原理简述2.核心流量特征&#xff08;1&#xff09;请…

Java编程之建造者模式

建造者模式&#xff08;Builder Pattern&#xff09;是一种创建型设计模式&#xff0c;它将一个复杂对象的构建与表示分离&#xff0c;使得同样的构建过程可以创建不同的表示。这种模式允许你分步骤构建一个复杂对象&#xff0c;并且可以在构建过程中进行不同的配置。 模式的核…

Spring AI之RAG入门

目录 1. 什么是RAG 2. RAG典型应用场景 3. RAG核心流程 3.1. 检索阶段 3.2. 生成阶段 4. 使用Spring AI实现RAG 4.1. 创建项目 4.2. 配置application.yml 4.3. 安装ElasticSearch和Kibana 4.3.1. 安装并启动ElasticSearch 4.3.2. 验证ElasticSearch是否启动成功 …

mysql数据库实现分库分表,读写分离中间件sharding-sphere

一 概述 1.1 sharding-sphere 作用&#xff1a; 定位关系型数据库的中间件&#xff0c;合理在分布式环境下使用关系型数据库操作&#xff0c;目前有三个产品 1.sharding-jdbc&#xff0c;sharding-proxy 1.2 sharding-proxy实现读写分离的api版本 4.x版本 5.x版本 1.3 说明…

运维视角下的广告系统之理解广告索引级联

广告索引中为什么要级联 这里的“级联”一般指的是多层索引结构&#xff0c;也叫级联索引&#xff08;Cascade Index 或 Multi-level Index&#xff09;。 在广告系统的索引中&#xff0c;级联设计有重要作用&#xff0c;主要原因如下&#xff1a; 1. 多维特征筛选的需求 广…

2025年5月24日系统架构设计师考试题目回顾

当前仅仅是个人用于记录&#xff0c;还未做详细分析&#xff0c;待更新… 综合知识 设 x,y 满足约束条件&#xff1a;x-1>0, x-y<0, x-y-x<0, 则 y/x 的最大值是()。 A. 3 B. 2 C. 4 D. 1 申请软件著作权登记时应当向中国版本保护中心提交软件的鉴别材料&#xff…

3D-激光SLAM笔记

目录 定位方案 编译tbb ros2humble安装 命令 colcon commond not found 栅格地图生成&#xff1a; evo画轨迹曲线 安装gtsam4.0.2 安装ceres-solver1.14.0 定位方案 1 方案一&#xff1a;改动最多 fasterlio 建图&#xff0c;加闭环优化&#xff0c;参考fast-lio增加关…

贪心算法应用:分数背包问题详解

贪心算法与分数背包问题 贪心算法&#xff08;Greedy Algorithm&#xff09;是算法设计中一种重要的思想&#xff0c;它在许多经典问题中展现出独特的优势。本文将用2万字篇幅&#xff0c;深入剖析贪心算法在分数背包问题中的应用&#xff0c;从基础原理到Java实现细节&#x…