Descripción general de la integración con Modern.js
Modern.js es un framework de desarrollo web progresivo basado en React. Dentro de ByteDance, Modern.js da soporte al desarrollo de miles de aplicaciones web.
El equipo de Module Federation trabaja estrechamente con el equipo de Modern.js y ofrece tanto @module-federation/modern-js-v3 como @module-federation/modern-js para ayudarte a usar Module Federation en Modern.js.
Te recomendamos actualizar a Modern.js v3 y usar preferentemente @module-federation/modern-js-v3.
Compatibilidad
- Modern.js v3: usa
@module-federation/modern-js-v3(recomendado) - Modern.js v2.56.1 y posteriores: usa
@module-federation/modern-js - Incluye renderizado del lado del servidor (SSR)
Te recomendamos encarecidamente tomar como referencia estas aplicaciones, que muestran las buenas prácticas para integrar Modern.js con Module Federation:
Inicio rápido
Instalación
Para Modern.js v3, instala @module-federation/modern-js-v3:
Si todavía usas Modern.js v2, instala @module-federation/modern-js:
Aplicar el plugin
El siguiente ejemplo usa Modern.js v3. Si todavía usas Modern.js v2, sustituye @module-federation/modern-js-v3 por @module-federation/modern-js.
Aplica este plugin en la sección plugins de modern.config.ts:
A continuación, crea el archivo module-federation.config.ts y añade la configuración necesaria:
Renderizado del lado del servidor (SSR)
Para ofrecer un mejor rendimiento, Module Federation y el SSR de Modern.js solo admiten SSR en streaming.
Usar Module Federation en escenarios SSR no difiere de hacerlo en escenarios CSR; puedes seguir trabajando con tus prácticas de desarrollo habituales.
Obtención de datos a nivel de componente
Consulta Obtención de datos.
En Modern.js v3, la obtención de datos a nivel de componente está integrada en el plugin @module-federation/modern-js-v3, por lo que ya no necesitas instalar @module-federation/bridge-react por separado para usarla.
Todas las APIs de obtención de datos se encuentran en @module-federation/modern-js-v3/data-fetch. Puedes importarlas y usarlas desde esta subruta.
Bridge API
Consulta React Bridge.
En Modern.js v3, las Bridge APIs están integradas en el plugin @module-federation/modern-js-v3, por lo que ya no necesitas instalar @module-federation/bridge-react por separado para usarlas.
Todas las Bridge APIs se encuentran en @module-federation/modern-js-v3/react. Puedes importarlas y usarlas desde esta subruta. Si necesitas distinguir explícitamente las llamadas a createBridgeComponent para React 18 o React 19, el plugin de Modern.js v3 usa rutas de exportación ligeramente distintas:
Runtime API
Todas las Runtime APIs de Module Federation se encuentran en @module-federation/modern-js-v3/runtime. Puedes importarlas y usarlas desde esta subruta.
createRemoteComponent Obsoleto
Esta API está obsoleta. Usa createLazyComponent en su lugar.
Los parámetros de createRemoteComponent y createLazyComponent son idénticos. La única diferencia es que createLazyComponent debe llamarse a través de una instancia después de registrar el plugin.
createRemoteSSRComponent Obsoleto
Esta API está obsoleta. Usa createLazyComponent en su lugar.
La migración es igual que la de createRemoteComponent.
Configuración
ssr
- Tipo:
false - Obligatorio: No
- Valor por defecto:
undefined
@module-federation/modern-js-v3 añadirá automáticamente presets de build relacionados con SSR en función de server.ssr en la configuración de modern.js.
Si el proyecto actual solo necesita cargar MF en CSR, puedes establecer ssr: false para facilitar una migración progresiva.
fetchServerQuery
- Tipo:
Record<string, unknown> - Obligatorio: No
- Valor por defecto:
undefined
Si se produce una degradación, se enviará una solicitud HTTP al servidor. Esta configuración permite añadir parámetros de consulta a esa solicitud.
Modern.js v2
Te recomendamos usar Modern.js v3, ya que ofrece un mejor rendimiento y funcionalidades más completas. No obstante, también ofrecemos el plugin @module-federation/modern-js para usar Module Federation en proyectos de Modern.js v2.