Alejandría

Busca en Alejandría

Lenguajes y marcos

Modern.js

Meta-framework React con capacidades para aplicaciones y arquitecturas basadas en Module Federation.

01

En pocas palabras

Meta-framework React con capacidades para aplicaciones y arquitecturas basadas en Module Federation.

Qué problema resuelve

Integración y configuración complejas para equipos con microfrontends federados.

Cuándo utilizarlo

Aplicaciones React federadas. Ejemplo: componer módulos de ventas y soporte de equipos distintos.

02

De la idea a la práctica

Funcionamiento, ejemplos y decisiones para pasar al siguiente nivel.

En el Radar compartido: Trial (valoración de la edición aportada).

Cómo funciona

Ofrece convenciones de aplicación, herramientas de construcción y extensiones para federación. Permite integrar módulos desplegados por separado dentro de una experiencia común.

Ejemplo de uso

Construir un shell con navegación y cargar un remoto de facturación. Probar carga, fallo del remoto y compatibilidad de dependencias antes de habilitar despliegues independientes.

Qué incluye

Capacidad Descripción
Build con Rsbuild/Rspack Bundler en Rust compatible con el ecosistema de webpack
Rutas por convención Estructura de carpetas en src/routes, layouts anidados
Carga de datos Data loaders por ruta que se ejecutan antes de renderizar
Renderizado CSR, SSR, streaming SSR y generación estática por ruta
BFF Funciones de API en el mismo proyecto, invocables como funciones tipadas desde el cliente
Module Federation Plugin oficial para hosts y remotos con SSR
Plugins Extensión del ciclo de vida de build y runtime

Crear un proyecto

npx @modern-js/create@latest portal
cd portal
pnpm dev

Estructura con rutas y data loaders

src/routes/
├── layout.tsx              # layout común (navegación)
├── page.tsx                # /
└── creditos/
    ├── page.tsx            # /creditos
    ├── page.data.ts        # loader: se ejecuta antes de renderizar
    └── [id]/page.tsx       # /creditos/:id
// src/routes/creditos/page.data.ts
export const loader = async () => {
  const res = await fetch('https://api.internal/creditos?estado=vigente');
  return (await res.json()) as Credito[];
};

La página obtiene los datos con useLoaderData(). En SSR el loader corre en el servidor; en navegación del cliente, se ejecuta en paralelo a la carga del código de la ruta.

Cuándo considerarlo

Situación Lectura
Varios equipos publican partes de un mismo portal (Module Federation) Buena opción integrada
Necesidad de SSR con federación Uno de los pocos frameworks que lo resuelve de forma oficial
Aplicación única sin federación Next.js, React Router o Vite + React suelen tener más comunidad

El proyecto procede de ByteDance y está muy ligado al ecosistema Rspack/Rsbuild; valora la madurez de la documentación en tu idioma y la comunidad antes de adoptarlo como estándar.

Criterios de implementación

Evaluar documentación, soporte y coste operativo del ecosistema. Adoptarlo por necesidades concretas de federación y validar combinaciones de plugins en la versión seleccionada.

Continúa en las fuentes

Documentación oficial para verificar detalles y explorar más.