utquidem
Version:
The meta-framework suite designed from scratch for frontend-focused modern web development.
65 lines (53 loc) • 1.27 kB
Markdown
title: useModuleApps
sidebar_position: 7
:::info 补充信息
返回所有微前端子应用的 React 组件,用于可自由控制路由。
```ts
import { useModuleApps } from '@modern-js/runtime';
```
:::
:::caution 注意
该 API 在微前端主应用中使用,需要先开启微前端。
:::
## API
`useModuleApps() => Record<string, React.FC<any>>`
分别返回包裹每个子应用后的 React 组件。
## 示例
需要先配置微前端子应用信息。
```js title=modern.config.js
defineConfig({
runtime: {
masterApp: {
manifest: {
modules: [
{
name: 'Home',
entry: 'http://www.home.com'
},
{
name: 'Contact',
entry: 'http://www.contact.com'
},
]
}
}
}
})
```
```tsx title=App.tsx
function App() {
const { Home, Contact } = useModuleApps();
return <div>
Master APP
<Route exact path='/home'>
<Home />
</Route>
<Route exact path='/home'>
<Contact />
</Route>
</div>;
}
```
通过 `useModuleApps()` 获取到 `Home` 和 `Contact` 子应用组件(名称和配置里的 `name` 字段对应),之后就可以像使用普通的 React 组件一样去加载子应用。