Signals mejora la forma en que los desarrolladores interactúan con el mecanismo de detección de cambios de Angular, simplificando y mejorando las técnicas precedentes según las necesidades de la aplicación.
Signals es una característica innovadora del framework Angular que permitirá futuras mejoras en el rendimiento de la aplicación mediante la introducción de aplicaciones zone-less y componentes basados en signals en el futuro.
Signals actúan como contenedores de valores que el mecanismo de detección de cambios debe verificar. Cuando un valor cambia, las signals notifican al framework sobre ese cambio. El framework es responsable de activar la detección de cambios y actualizar cualquier consumidor de signal. Un valor de signal puede cambiar directamente usando signals escribibles o indirectamente usando signals de solo lectura o computadas.
Se muestra cómo se puede leer y escribir un signal con un ejemplo sencillo.
Una signal calculada de solo lectura depende de otras signals escribibles o calculadas. El valor de una signal computada no puede cambiar directamente usando el método set o update, solo puede cambiar indirectamente cuando el valor de cualquiera de las otras signals cambia.
Aunque las signals son un enfoque reactivo moderno para Angular, son relativamente nuevas en el ecosistema de Angular en comparación con RxJS.
Las signals y RxJS potencian las aplicaciones Angular con capacidades reactivas. Estas librerías pueden complementarse entre sí para proporcionar reactividad mientras se utilizan los beneficios del framework Angular.
La API de signals proporciona la función toSignal que puede convertir un observable en una signal ().