PTENES
MÓDULO 1.4

⚛️ Frameworks modernos

Integra WebMCP en SPA, React, Angular y Next.js con registro y cleanup predecibles.

6

Temas

3h

Carga

Integrator

Nivel

Implementación

Tipo

0 de 60%
1

Usa JavaScript puro como referencia

Qué es: Una implementación sin framework explicita el registro, las dependencias y el cleanup.

Por qué aprender: La referencia reduce la magia y ayuda a diagnosticar problemas ocultos por hooks o inyección de dependencias.

Se monta el componente estado inicial Tools registradas decisión observable Cleanup resultado verificable

Antes de modelar

Escribe la solicitud de la persona, el estado actual y la evidencia que probará la finalización.

Error de inicio

Empezar por el nombre de una función o por un botón produce una tool sin un objetivo humano claro.

Anticípate antes de abrir el código

¿Qué información cambia la decisión? ¿Qué efecto debe aparecer en la interfaz? Responde antes de implementar.

const lifecycle = new AbortController();
registerTools(modelContext, services, lifecycle.signal);
Profundiza: evidencia que vale la pena guardar

Registra la entrada, el estado anterior, la decisión tomada, el resultado y el cambio visible en la página.

Incluye también un fallo provocado y el comportamiento observado sin soporte de WebMCP.

Conceptos clave

01

función pura

02

registro explícito

03

AbortController

04

línea base

2

Modela un hook de React idempotente

Qué es: El efecto registra tools para el estado actual y la limpieza aborta los registros anteriores.

Por qué aprender: Strict Mode, los rerenders y los cambios de dependencias no pueden duplicar nombres en el catálogo.

PreguntaContrato sólidoContrato débil
¿Cuándo usarlo?La descripción expresa la intención y el contexto.“Hace cosas” o “gestiona”.
¿Qué recibes?Solo los datos necesarios.Objeto genérico e ilimitado.
¿Qué devuelve?Estado y próxima acción verificables.Texto sin protocolo.
¿Cómo falla?Código, motivo y recuperación.Excepción opaca.

Haz

  • ✓ Usa verbos específicos.
  • ✓ Delimita las entradas.
  • ✓ Declara la evidencia.

Evita

  • ✗ Mezclar intenciones.
  • ✗ Aceptar cualquier objeto.
  • ✗ Ocultar efectos.
useEffect(() => {
  const controller = new AbortController();
  registerTools({ courseId, signal: controller.signal });
  return () => controller.abort();
}, [courseId]);
Profundiza: evidencia que vale la pena guardar

Registra la entrada, el estado anterior, la decisión tomada, el resultado y el cambio visible en la página.

Incluye también un fallo provocado y el comportamiento observado sin soporte de WebMCP.

Conceptos clave

01

useEffect

02

dependencias

03

cleanup

04

Strict Mode

3

Encapsula en un servicio Angular

Qué es: Un servicio recibe dependencias, registra las tools y expone cleanup al componente o a la ruta.

Por qué aprender: La inyección de dependencias mantiene las reglas comprobables y separadas del ciclo visual.

1

Observa

Captura el estado, la entrada y el contexto antes de la acción.

2

Decide

Valida las precondiciones y elige la transición permitida.

3

Ejecuta

Aplica la regla compartida y respeta la cancelación.

4

Demuestra

Actualiza la interfaz y devuelve un resultado estructurado.

Punto de control

Si el paso 2 no se aprueba, la tool no intenta «arreglárselas»: devuelve una recuperación explícita.

ngOnDestroy() {
  this.webMcpRegistration.abort();
}
Profundiza: evidencia que vale la pena guardar

Registra la entrada, el estado anterior, la decisión tomada, el resultado y el cambio visible en la página.

Incluye también un fallo provocado y el comportamiento observado sin soporte de WebMCP.

Conceptos clave

01

servicio

02

DI

03

OnDestroy

04

capacidad de prueba

4

Respeta al cliente y al servidor en Next.js

Qué es: document.modelContext solo existe en el cliente y después de que el documento está activo.

Por qué aprender: Separar el componente cliente, la carga y la API del servidor evita el acceso a Document durante SSR.

CÓDIGO DE REFERENCIA

"use client";
useEffect(() => registerPageTools(), []);
Entrada

Es pequeña, está descrita y se puede validar.

Ejecución

Reutiliza la regla real de la aplicación.

Salida

Permite verificar el efecto y continuar.

Lee el código como contrato

Subraya dónde se valida la entrada, dónde ocurre el efecto, dónde llega la cancelación y dónde se actualiza la UI.

Profundiza: evidencia que vale la pena guardar

Registra la entrada, el estado anterior, la decisión tomada, el resultado y el cambio visible en la página.

Incluye también un fallo provocado y el comportamiento observado sin soporte de WebMCP.

Conceptos clave

01

use client

02

hydration

03

SSR

04

Ruta de API

5

Actualiza las tools al cambiar de ruta

Qué es: Las SPAs deben retirar las herramientas de la ruta anterior y registrar solo las capacidades de la nueva pantalla.

Por qué aprender: Un catálogo obsoleto es stale UI: el agente ve una acción que la persona ya no puede ejecutar.

Fallo provocado

Ejecuta el escenario con estado ausente, entrada no válida o capacidad no disponible.

Recuperación esperada

La respuesta informa qué falló, qué sigue siendo seguro y qué acción puede continuar.

Matriz mínima de pruebas

✓ camino feliz reproducible

✓ entrada inválida accionable

✓ la cancelación termina el trabajo

✓ el fallback preserva el recorrido

✓ la interfaz refleja el estado

✓ el backend mantiene la autorización

routeController.abort("route changed");
routeController = new AbortController();
Profundiza: evidencia que vale la pena guardar

Registra la entrada, el estado anterior, la decisión tomada, el resultado y el cambio visible en la página.

Incluye también un fallo provocado y el comportamiento observado sin soporte de WebMCP.

Conceptos clave

01

router

02

unmount

03

catálogo actual

04

transición

6

Compara implementaciones con la misma prueba

Qué es: Los distintos frameworks deben cumplir el mismo contrato observable de registro, ejecución, UI y cleanup.

Por qué aprender: Una matriz común separa las diferencias de ergonomía de las diferencias reales de comportamiento.

Ejercicio de síntesis

  1. 1. Explica el problema sin usar el nombre de la tecnología.
  2. 2. Diseña el estado anterior y el posterior.
  3. 3. Implementa la prueba funcional más pequeña.
  4. 4. Provoca un fallo y registra la recuperación.
  5. 5. Entrega código, evidencia y una limitación conocida.

Desafío del módulo

Implementa el mismo catálogo en JavaScript puro y en un framework, y demuestra el montaje, la actualización y el desmontaje.

Criterio del Integrator responsable

La entrega debe funcionar, explicar sus límites y preservar la opción humana cuando la capacidad experimental no esté disponible.

| Implementação | registra 1x | atualiza UI | aborta | fallback |
| Vanilla       | sim         | sim        | sim    | sim      |
| React         | sim         | sim        | sim    | sim      |
Profundiza: evidencia que vale la pena guardar

Registra la entrada, el estado anterior, la decisión tomada, el resultado y el cambio visible en la página.

Incluye también un fallo provocado y el comportamiento observado sin soporte de WebMCP.

Conceptos clave

01

mismo contrato

02

mismas pruebas

03

cleanup comprobado

04

compatibilidad

📦 Entrega del módulo

Implementa el mismo catálogo en JavaScript puro y en un framework, y demuestra el montaje, la actualización y el desmontaje.

Criterio de aceptación

La entrega funciona con soporte de WebMCP y mantiene la opción manual cuando la API no existe.

Evidencia

Incluye código, escenario probado, resultado observado y una limitación conocida.

Fuentes técnicas