react作为基座项目,vite作为子项目,使用micro-zoe/micro-app的该怎么进行连接
时间: 2024-05-06 22:18:09 浏览: 272
要将React作为基座项目,Vite作为子项目,并使用micro-zoe/micro-app进行连接,可以按照以下步骤进行操作:
1. 在基座项目的根目录下安装micro-zoe:
```
npm install micro-zoe --save
```
2. 在基座项目的入口文件中(通常是App.js或index.js),引入micro-zoe并注册需要使用的子应用程序:
```jsx
import React from 'react';
import ReactDOM from 'react-dom';
import { registerMicroApps, start } from 'micro-zoe';
import App from './App';
// 注册子应用
registerMicroApps([
{
name: 'vite-app',
entry: '//localhost:3001',
container: '#subapp-container',
activeRule: '/vite',
},
]);
// 启动应用
start();
ReactDOM.render(<App />, document.getElementById('root'));
```
这里我们注册了一个名为`vite-app`的子应用,入口地址为`//localhost:3001`,容器选择器为`#subapp-container`,路由匹配规则为`/vite`。
3. 在子应用项目中,安装micro-app:
```
npm install micro-app --save
```
4. 在子应用项目的入口文件main.js中,使用micro-app暴露出来的生命周期函数和render方法:
```js
import { registerMicroApps, start } from 'micro-app';
function render() {
ReactDOM.render(<App />, document.getElementById('root'));
}
if (!window.__MICRO_APP__) {
render();
}
export async function bootstrap() {
console.log('vite-app bootstraped');
}
export async function mount() {
console.log('vite-app mounted');
render();
}
export async function unmount() {
console.log('vite-app unmounted');
ReactDOM.unmountComponentAtNode(document.getElementById('root'));
}
```
这里我们使用了`render`方法将子应用渲染到`#root`节点上,并在`bootstrap`、`mount`、`unmount`生命周期中分别输出了日志。
5. 在子应用项目的package.json中添加微前端特定的配置项:
```json
{
"name": "vite-app",
"version": "0.1.0",
"micro-app": {
"name": "vite-app",
"port": 3001,
"url": "//localhost:3001",
"js": "http://localhost:3001/js/app.js"
},
"scripts": {
"dev": "vite"
},
"dependencies": {
"react": "^17.0.1",
"react-dom": "^17.0.1"
}
}
```
这里我们添加了`micro-app`字段,其中包含了子应用的名称、端口、URL、以及入口JS文件的地址。
6. 在子应用项目中运行`npm run dev`启动开发服务器,然后在基座项目中运行`npm start`启动应用程序,即可看到基座应用程序中嵌入了子应用程序。
阅读全文