Contenido del curso
Gestión de Entornos
Nuevas Funcionalidades en Angular
- 7

Variables locales con @let en Angular
09:14 min - 8

Lazy loading de imágenes con ngSrc en Angular
17:08 min - 9

URLs amigables para SEO en Angular
11:27 min - 10

"Reactividad en Angular: Migración a Input Signals"
20:42 min - 11

Migración automática de @Input a signals en Angular
12:23 min - 12

Migración de Outputs en Angular: De Decoradores a Funciones
Viendo ahora - 13

linkedSignal en Angular: computed con set
12:56 min - 14

Sincronización de Componentes en Angular con Model y Signals
12:03 min - 15

toSignal: Observables de RxJS como Signals
11:17 min - 16

Conversión de Observables a Signals en Angular con toSignal
08:07 min - 17

Interoperabilidad de RXDS y Signals en Angular: Uso de RX Resourcers
11:10 min - 18

Manejo de Parámetros Reactivos con RX Resource en Angular
09:18 min - 19

Manejo de Promesas y Fetch en Angular sin RXJS
07:59 min - 20

Reactividad en Angular: Uso de Signals para Consultas DOM
09:00 min - 21

Configuración de Prettier para HTML en Angular
05:28 min
Server-Side Rendering (SSR) y Navegación
- 22

Migración al Application Builder de Angular
10:17 min - 23

Server Side Rendering con Angular: Mejora Rendimiento y SEO
13:26 min - 24

afterNextRender: código seguro solo en el browser
09:42 min - 25

Geolocalización y APIs: Creando un Mapa de Tiendas Cercanas
15:39 min - 26

Pre-rendering en Angular con ng build
11:25 min - 27

Desplegando Angular SSR en Firebase
18:12 min
Optimización de Rendimiento
- 28

Generación de Meta Tags Dinámicos con Angular y Open Graph
15:11 min - 29

Creación de MetaTags Dinámicos en Angular
12:51 min - 30

Proceso de Hydration y Event Replay en Angular
05:54 min - 31

Productos relacionados con RxResource en Angular
09:25 min - 32

Carga diferida de componentes en Angular para mejorar rendimiento
10:10 min - 33

Optimización de Incremental Hydration en Angular
06:14 min - 34

Configuración de Server Routing en Angular
10:43 min - 35

Aplicaciones Sin Zone.js: Migración a Signals en Angular
13:02 min - 36

Cierre del curso avanzado de Angular
00:53 min
Migración de Outputs en Angular: De Decoradores a Funciones
Resumen
La evolución de Angular continúa con cambios significativos en sus APIs, especialmente en la forma de manejar los outputs en los componentes. Estos cambios buscan alinear la sintaxis y hacer más coherente el desarrollo, siguiendo la misma línea que los recientes cambios en los inputs. Veamos cómo implementar estos cambios y qué beneficios nos aportan.
¿Cómo ha cambiado la API de outputs en Angular?
A diferencia de los inputs que ahora utilizan un SignalInput, los outputs han cambiado en su forma pero no en su esencia. El cambio principal es que ahora se manejan como funciones en lugar de decoradores, siguiendo la misma línea de los inputs para mantener una coherencia en el código.
Es importante destacar que este cambio es principalmente de sintaxis y no de funcionalidad. Angular está alineando todas sus APIs para seguir un mismo patrón, haciendo que el código sea más declarativo y consistente.
¿Cómo implementar el nuevo formato de outputs?
Para implementar el nuevo formato de outputs, debemos seguir estos pasos:
- Eliminar el decorador
@Output() - Importar la función
outputdesde@angular/core - Reemplazar la declaración con la nueva sintaxis
Veamos un ejemplo práctico:
Antes (con decorador):
@Output() addedProduct = new EventEmitter<Product>();
Ahora (con función):
addedProduct = output<Product>();
Como podemos observar, la sintaxis es mucho más limpia y directa. Ya no necesitamos importar ni utilizar EventEmitter, lo que simplifica nuestro código.
¿Qué tipos de datos podemos emitir con los outputs?
Con la nueva API, podemos especificar claramente qué tipo de datos queremos emitir:
- Para emitir un tipo específico:
output<TipoEspecífico>() - Para emitir un string:
output<string>() - Para no emitir ningún dato (solo notificar):
output<void>()
Esta última opción es particularmente útil cuando solo necesitamos notificar al componente padre sobre un cambio de estado sin enviar datos adicionales.
¿Cómo migrar automáticamente los outputs en proyectos existentes?
Si tienes un proyecto grande con muchos componentes que utilizan outputs, Angular proporciona una herramienta de migración automática, similar a la que existe para los inputs.
La migración automática permite:
- Analizar todo el código de tu aplicación
- Identificar todos los outputs que utilizan el formato antiguo
- Convertirlos automáticamente al nuevo formato
- Mantener la funcionalidad sin cambios
Para ejecutar esta migración, Angular proporciona un comando específico que puedes encontrar en la documentación oficial de migraciones disponibles.
¿Por qué Angular está realizando estos cambios?
Estos cambios forman parte de una estrategia más amplia de Angular para:
- Mejorar la coherencia: Alinear todas las APIs para que sigan patrones similares
- Simplificar el desarrollo: Reducir la cantidad de importaciones y código repetitivo
- Preparar el terreno para futuras mejoras: Estos cambios facilitan la implementación de nuevas características
Es importante destacar que aunque los outputs ahora se declaran como funciones, no son SignalOutputs como podría pensarse por analogía con los inputs. Se trata simplemente de un cambio en la forma de declaración para mantener la coherencia en el código.
La evolución de Angular hacia APIs más declarativas y consistentes demuestra el compromiso del framework con la mejora continua y la experiencia del desarrollador. Estos cambios, aunque pueden requerir un esfuerzo inicial de adaptación, simplifican el código y hacen que el desarrollo sea más intuitivo a largo plazo. ¿Has implementado ya estos cambios en tus proyectos? Comparte tu experiencia en los comentarios.