微前端:quankun

零: 前言

微前端可以将大应用拆分功能独立的微应用,可独立开发部署,
每个微应用可以采用自己的技术栈,这样更好维护和拓展。微前端也会存在跨域 权限控制 数据共享 性能(页面加载时间) 安全 
多团队协作(一个团队负责一个页面或模块) 组件重用。要采用适合的方案

一: 创建项目

主项目

yarn create vite main-app --template react-ts

micro-react01项目

npx create-react-app micro-react01 --template typescript

micro-vue01项目

yarn create vite micro-vue01 --template vue-ts

二: 主项目操作

npm i quankun -S

在主项目app.tsx加入下面的代码

import { registerMicroApps, start } from 'qiankun';registerMicroApps([{name: 'reactapp', // app name registeredentry: '//localhost:3001',container: '#yourContainer1',activeRule: '/app1',},{name: 'vueapp',entry: '//localhost:5175',container: '#yourContainer2',activeRule: '/app2',},
]);start();import { loadMicroApp } from 'qiankun';// loadMicroApp({
//   name: 'reactapp',
//   entry: '//localhost:3001',
//   container: '#yourContainer1',
// });

帮加上插槽地址

<div id='yourContainer1'></div><div id='yourContainer2'></div>

最终如下
app.tsx

import { useState } from 'react'
import reactLogo from './assets/react.svg'
import viteLogo from '/vite.svg'
import './App.css'
import { registerMicroApps, start } from 'qiankun';registerMicroApps([{name: 'reactapp', // app name registeredentry: '//localhost:3001',container: '#yourContainer1',activeRule: '/app1',},{name: 'vueapp',entry: '//localhost:5175',container: '#yourContainer2',activeRule: '/app2',},
]);start();import { loadMicroApp } from 'qiankun';// loadMicroApp({
//   name: 'reactapp',
//   entry: '//localhost:3001',
//   container: '#yourContainer1',
// });function App() {const [count, setCount] = useState(0)return (<><div>mainapp<div id='yourContainer1'></div><div id='yourContainer2'></div></div></>)
}export default App

三: 微项目操作

micro-react01项目

package.json中加入"devServer": {"headers": {"Access-Control-Allow-Origin": "*","Access-Control-Allow-Methods": "GET, POST, PUT, DELETE","Access-Control-Allow-Headers": "*"}}执行npm run build打包

然后启动服务

npm i serve -g
serve

得到服务地址localhost:3001

四: 访问微应用

访问: 主项目地址/app1,
此时,发现micro-react01应用已经加载出来了

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

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

相关文章

list部分接口模拟实现(c++)

List list简介list基本框架list构造函数list_node结构体的默认构造list类的默认构造 push_back()iteartor迭代器迭代器里面的其他接口const迭代器通过模板参数实现复用operator->() insert()erase()clear()析构函数迭代器区间构造拷贝构造operator() list简介 - list可以在…

【Java】本地开发环境正常、测试或生产环境获取的文件路径不对的问题

引 Java 中经常获取本地文件或者resource下的文件&#xff0c;要获取文件&#xff0c;首先要获得本地路径。 Java 本身或一些开源工具包都提供了很多获取路径的方法。但使用时经常遇到本地开发环境正常、测试或生产环境获取的文件路径不对的问题。 本文将列出几种常见的获取…

python开发过程中注意编码规范~

文章目录 一、 代码编排二、 文档编排三、 空格的使用四、 注释五、 文档描述六、 命名规范总体原则&#xff0c;新编代码必须按下面命名风格进行&#xff0c;现有库的编码尽量保持风格。七 编码建议关于Python技术储备一、Python所有方向的学习路线二、Python基础学习视频三、…

【三维重建】摄像机几何

针孔相机模型 为了方便我们对针孔相机模型进行数学建模&#xff0c;我们往往对虚拟像平面进行研究&#xff0c;因为虚拟像平面的方向与我们实际物体的方向一致。 通过相似三角形法可以得到三维坐标到二维坐标映射 将像平面原点坐标移动到左下角&#xff1a; 加上现实世界单位&a…

Vue中的$nextTick有什么作用?

一、NextTick是什么 官方对其的定义 在下次 DOM 更新循环结束之后执行延迟回调。在修改数据之后立即使用这个方法&#xff0c;获取更新后的 DOM 什么意思呢&#xff1f; 我们可以理解成&#xff0c;Vue 在更新 DOM 时是异步执行的。当数据发生变化&#xff0c;Vue将开启一个异…

【神经网络】【GoogleNet】

1、引言 卷积神经网络是当前最热门的技术&#xff0c;我想深入地学习这门技术&#xff0c;从他的发展历史开始&#xff0c;了解神经网络算法的兴衰起伏&#xff1b;同时了解他在发展过程中的**里程碑式算法**&#xff0c;能更好的把握神经网络发展的未来趋势&#xff0c;了解神…

【Linux笔记】Linux环境变量与地址空间

【Linux笔记】Linux环境变量与地址空间 一、命令行参数1.1、main函数的参数1.2、main函数的第三个参数 二、环境变量的概念与内容2.1、环境变量的概念2.2、环境变量的分类2.3、环境变量的组织形式2.4、常见的环境变量 三、设置环境变量3.1、通过命令获取或设置环境变量3.2、通过…

补偿 FIR 滤波器引入的延迟

补偿 FIR 滤波器引入的延迟 对信号进行滤波会引入延迟。这意味着相对于输入&#xff0c;输出信号在时间上有所偏移。此示例向您说明如何抵消这种影响。 有限冲激响应滤波器经常将所有频率分量延迟相同的时间量。这样&#xff0c;我们就很容易通过对信号进行时移处理来针对延迟…

SMART PLC模拟量上下限报警功能块(梯形图代码)

博途PLC模拟量偏差报警功能块请参考下面的文章链接: 模拟量偏差报警功能块(SCL代码)_RXXW_Dor的博客-CSDN博客文章浏览阅读594次。工业模拟量采集的相关基础知识,可以查看专栏的系列文章,这里不再赘述,常用链接如下:PLC模拟量采集算法数学基础(线性传感器)_plc傳感器數…

目标检测算法 - YOLOv1

文章目录 1. 作者简介2. 目标检测综述3. YOLOv1算法3.1 预测阶段3.2 预测阶段后处理3.3 训练阶段 YOLO的全称是you only look once&#xff0c;指只需要浏览一次就可以识别出图中的物体的类别和位置。 YOLO是目标检测模型。目标检测是计算机视觉中比较简单的任务&#xff0c;用…

Pytorch实战教程(二十七)-基于ResNet模型实现猫狗分类

0. 前言 从 VGG11 到 VGG19,不同之处仅在于网络层数,一般来说,神经网络越深,它的准确率就越高。但并非仅增加网络层数,就可以获得更准确的结果,随着网络层数的增加可能会出现以下问题: 梯度消失和爆炸:在网络层次过深的情况下,反向传播可能会面临梯度消失和爆炸的问题…

OpenHarmony创新赛|赋能直播第五期

OpenHarmony创新赛赋能直播课程即将再次与大家见面&#xff01;本期基于之前的青蛙影院的UI界面设计的课程&#xff0c;介绍综合性APP的需求介绍和技术栈整合等内容。此外&#xff0c;课程同步赋能OpenHarmony创新赛&#xff0c;为参赛开发者带来新的思路和方法&#xff0c;也欢…

卷积神经网络中 6 种经典卷积操作

深度学习的模型大致可以分为两类&#xff0c;一类是卷积神经网络&#xff0c;另外一类循环神经网络&#xff0c;在计算机视觉领域应用最多的就是卷积神经网络&#xff08;CNN&#xff09;。CNN在图像分类、对象检测、语义分割等经典的视觉任务中表现出色&#xff0c;因此也早就…

【Python3】【力扣题】242. 有效的字母异位词

【力扣题】题目描述&#xff1a; 【Python3】代码&#xff1a; 1、解题思路&#xff1a;若字符串长度相同&#xff0c;依次遍历元素&#xff0c;比较两个字符串的该元素个数是否相同。【耗时长】 知识点&#xff1a;len(...)&#xff1a;获取序列&#xff08;字符串、列表等&…

【uniapp】通用列表封装组件

uniapp页面一般都会有像以下的列表页面&#xff0c;封装通用组件&#xff0c;提高开发效率&#xff1b; &#xff08;基于uView前端框架&#xff09; 首先&#xff0c;通过设计图来分析一下页面展示和数据结构定义 w-table组件参数说明 参数说明类型可选值默认值toggle列表是…

postgresql字段长度修改和数据重写

1 创建表查询日志 #创建表 postgres# create table t(id numeric(5)); CREATE TABLE postgres# select t::regclass::oid;oid -------50032 (1 row)#查看wal日志 [pg13sdw2 pg_wal]$ pg_waldump 0000000100000006000000A2 rmgr: Standby len (rec/tot): 50/ 50, …

关于Android Studio中开发Flutter配置

配置系统环境变量&#xff1a;path下 &#xff0c;flutter的bin目录下 File->Settings->Languages&Frameworks->FlutterFile->Settings->Languages&Frameworks->DartFile->Settings->Languages&Frameworks->Android SDK 确认是…

单链表(增删改查)【超详细】

目录 单链表 1.单链表的存储定义 2.结点的创建 3.链表尾插入结点 4.单链表尾删结点 5.单链表头插入结点 6.单链表头删结点 7.查找元素&#xff0c;返回结点 8.在pos结点前插入一个结点 ​编辑 9.在pos结点后插入一个结点 10.删除结点 11.删除pos后面的结点 12.修改…

flink1.18.0 sql-client报错

报错 Flink SQL> > > select * from t1; [ERROR] Could not execute SQL statement. Reason: java.lang.ClassNotFoundException: org.apache.kafka.clients.consumer.OffsetResetStrategy 解决 注意 一定要重启flink服务 否则还会报错: Flink SQL> select *…

CDN是什么?

一.CDN的概念 内容分发网络&#xff08;Content Delivery Network&#xff0c;简称CDN&#xff09;是建立并覆盖在承载网之上&#xff0c;由分布在不同区域的边缘节点服务器群组成的分布式网络。CDN应用广泛&#xff0c;支持多种行业、多种场景内容加速&#xff0c;例如&#…