# React Bridge
React bridge is used to load the routing module in mf, so that the routing module can work properly with the host environment.
> When to use
- Load the route module
- Load across the front end framework
## How to use
# 1. Install the react bridge library
```bash
pnpm add @module-federation/bridge-react
```
# 2. Configure the react bridge library
> Use createBridgeComponent create component provider
```jsx
// ./src/index.tsx
import { createBridgeComponent } from '@module-federation/bridge-react';
function App() {
return (
Home page
}>
Detail page
}>
)
}
export default createBridgeComponent({
rootComponent: App
});
```
> set alias to proxy
```js
//rsbuild.config.ts
export default defineConfig({
source: {
alias: {
'react-router-dom$': path.resolve(
__dirname,
'node_modules/@module-federation/bridge-react/dist/router.es.js',
),
},
},
server: {
port: 2001,
host: 'localhost',
},
dev: {
assetPrefix: 'http://localhost:2001',
},
tools: {
rspack: (config, { appendPlugins }) => {
delete config.optimization?.splitChunks;
config.output!.uniqueName = 'remote1';
appendPlugins([
new ModuleFederationPlugin({
name: 'remote1',
exposes: {
'./export-app': './src/index.tsx',
}
}),
]);
},
},
});
```
# 3. Load the module with routing
```js
//rsbuild.config.ts
export default defineConfig({
tools: {
rspack: (config, { appendPlugins }) => {
config.output!.uniqueName = 'host';
appendPlugins([
new ModuleFederationPlugin({
name: 'host',
remotes: {
remote1: 'remote1@http://localhost:2001/mf-manifest.json',
},
}),
]);
},
},
});
```
> Use the module
```jsx
// ./src/index.tsx
import { createBridgeComponent } from '@module-federation/bridge-react';
const Remote1 = createBridgeComponent(()=> import('remote1/export-app'));
function App() {
return (
Home page
}>
}>
)
}
const root = ReactDOM.createRoot(document.getElementById('root')!);
root.render(
);
```