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

微前端: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.lryc.cn/news/224717.html

相关文章:

  • CSDN每日一题学习训练——Java版(克隆图、最接近的三数之和、求公式的值)
  • XOR Construction
  • K8S容器持续Terminating无法正常关闭(sider-car容器异常,微服务容器正常)
  • Spring 循环依赖
  • MySQL 8.0.13升级到8.0.35记录 .NET
  • flink udtaf 常年不能用
  • 路由汇总的四要点
  • HashMap存值、取值及哈希碰撞原理分析
  • 【SVN】
  • 编程语言,脚本语言
  • 探索双十一:从技术角度剖析电商狂欢节
  • Ubuntu LTS 坚持 10 年更新不动摇
  • Python将多个相同格式的变量存储到列表中
  • 前端字符串转数组对象实现方式-开发bug总结6
  • 99 颜色分类
  • 计算机视觉与深度学习 | 基于GPS/BDS多星座加权图因子优化的行人智能手机导航
  • 低代码平台,业务开发的“银弹”
  • 补偿 FIR 滤波器引入的延迟
  • 图数据库Neo4j详解
  • 系列一、Shiro概述
  • SpringCloudAlibaba——Sentinel
  • Java编写简易rabbitmq生产者与消费者
  • 3.0.3版vsftpd所支持的FTP命令
  • OTA包添加自定义内容
  • Luatos Air700 改变BL0942串口波特率
  • 不可忽视的国外服务器地址IP选择指南
  • C语言 预处理详解
  • c++ async 使用详解,创建异步任务的多种方法
  • 万物皆数——用matlab求解二阶微分方程
  • jmeter接口自动化部署jenkins教程