零: 前言
typescript
微前端可以将大应用拆分功能独立的微应用,可独立开发部署,
每个微应用可以采用自己的技术栈,这样更好维护和拓展。
微前端也会存在跨域 权限控制 数据共享 性能(页面加载时间) 安全
多团队协作(一个团队负责一个页面或模块) 组件重用。要采用适合的方案
一: 创建项目
主项目
typescript
yarn create vite main-app --template react-ts
micro-react01项目
typescript
npx create-react-app micro-react01 --template typescript
micro-vue01项目
typescript
yarn create vite micro-vue01 --template vue-ts
二: 主项目操作
typescript
npm i quankun -S
在主项目app.tsx加入下面的代码
typescript
import { registerMicroApps, start } from 'qiankun';
registerMicroApps([
{
name: 'reactapp', // app name registered
entry: '//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',
// });
帮加上插槽地址
typescript
<div id='yourContainer1'></div>
<div id='yourContainer2'></div>
最终如下
app.tsx
typescript
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 registered
entry: '//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项目
typescript
在package.json中加入
"devServer": {
"headers": {
"Access-Control-Allow-Origin": "*",
"Access-Control-Allow-Methods": "GET, POST, PUT, DELETE",
"Access-Control-Allow-Headers": "*"
}
}
执行npm run build打包
然后启动服务
typescript
npm i serve -g
serve
得到服务地址localhost:3001
四: 访问微应用
访问: 主项目地址/app1,
此时,发现micro-react01应用已经加载出来了