本章将介绍如何使用 createBridgeComponent
将您的 React 应用导出为可被远程加载的模块。
要导出一个 React 应用,您需要创建一个专门的导出文件,使用 createBridgeComponent
将应用包装为远程模块。
假设您的应用入口是 App.tsx
,创建一个新文件 export-app.tsx
:
exposes
导出接下来需要在构建工具中配置 Module Federation,将创建的导出文件暴露给其他应用使用。
以下示例使用 Rsbuild 配置,请根据您使用的构建工具进行相应调整:
@module-federation/rsbuild-plugin
@module-federation/enhanced/rspack
@module-federation/enhanced/webpack
@module-federation/vite
React Bridge 提供了强大的路由协同能力,可根据当前路径动态为应用注入 basename 和路由上下文传递。
Bridge Router 目前支持 React Router v5、v6、v7 版本的路由代理功能。
暂不支持其他路由框架如 @tanstack/react-router
,针对非 React Router 的应用,需要显示关闭 enableBridgeRouter
,并自行处理路由逻辑。
enableBridgeRouter: true
(默认值) - 自动处理 basename 和路由协同,支持 React Router v5、v6、v7enableBridgeRouter: false
- 禁用 Bridge 默认的路由代理能力,用户需手动处理路由集成
启用 Bridge Router 时,请勿将 react-router-dom
配置为 shared 依赖,否则会导致路由功能异常。
桥接组件的配置参数:
渲染参数接口:
销毁参数接口:
React 18+ 的 createRoot 选项:
对应的 Module Federation 配置:
导出应用配置完成后,您可以继续阅读 加载远程应用 来了解如何在宿主应用中加载这个远程应用。