Carregamento Aplicações
Este chapter introduces como para usar createRemoteAppComponent para carregar e integrate remote React aplicações em uma aplicação host.
What é createRemoteAppComponent?
createRemoteAppComponent é o core React Bridge API for carregamento remote React aplicações. It fornece:
- Automatic Lazy Carregamento: Carrega remotes apenas quando needed
- Lifecycle Management: Handles mount/unmount automatically
- Router Integração: Integrates com React Router e suporta basename injection
- Erro Handling: Built-em carregamento/runtime erro fallback suporte
- Styling: Suporta
className/styleno wrapper componente
Instalação
Básico Uso
Step 1: Configure Remote Módulos
Add remote configuração para a aplicação host's Module Federation configuração.
O seguinte exemplo usa Rsbuild configuração. Please adjust according para your ferramenta de build:
- Rsbuild:
@module-federation/rsbuild-plugin - Rspack:
@module-federation/enhanced/rspack - Webpack:
@module-federation/enhanced/webpack - Vite:
@module-federation/vite:::
:::tip
Se o remote usa React 18/19 bridge, garanta para também configure o shared section com o trailing-slash prefix form ('react-dom/') so esse react-dom/client é correctly shared.
Step 2: Crie Remote Componentes
Define Carregamento e Erro Componentes
Crie Remote Aplicação Componente
Main Aplicação Router Configuração
Remote Componente Props
Router Props
basename: Set o base caminho para a aplicação remotememoryRoute: Memory router configuração
Style Props
style:React.CSSPropertiesclassName:string
Ref Suporte
ref:React.Ref<HTMLDivElement>(forwarded to the internal container)
Dados Passing
- Pass props diretamente (e.g.
userId="123") ou via opropsobjeto.
createRemoteAppComponent API Reference
Função Signature
RemoteComponentParams<T, E>
RemoteComponentProps<T>
Parameter Details
loader
- Type:
() => Promise<T> - Obrigatório: Yes
- Description: Carrega o módulo remoto objeto
- Exemplos:
carregamento
- Tipo:
React.ReactNode - Obrigatório: Yes
- Description: UI shown enquanto o remote é carregamento
- Exemplos:
fallback
- Tipo:
React.ComponentType<{ error: Error }> - Obrigatório: Yes
- Description: UI shown quando carregamento/renderização fails; receives
error - Exemplos:
exporte
- Tipo:
E extends keyof T - Obrigatório: No
- Padrão:
'default' - Description: Selects que exporte para render do carregado módulo remoto
Exemplo: se your módulo remoto exporta:
Host uso:
Bundle Size Optimization
React Router Dependência Explanation
Por padrão, @module-federation/bridge-react includes react-router-dom em your bundle para forneça:
- Automatic basename injection
- Router context passing
- Nested routing suporte
Se você don't need React Router integração (ou você use uma diferente router), disable enableBridgeRouter para reduce bundle size (about ~3KB gzipped) e avoid unnecessary router integração.
How para Disable Router Dependência
Por padrão, Bridge enables router suporte para forneça o best experiência de desenvolvimento e compatibility. Quando você definir enableBridgeRouter: false, o plugin automatically switches para uma build esse does não include react-router-dom, reducing your bundle size.
O plugin automatically resolves importa de @module-federation/bridge-react para @module-federation/bridge-react/base. Esse entry does não bundle react-router-dom, so no code changes são obrigatório.