exacto mismo árbol de componentes que vimos. Idealmente, nos gustaría ser notificados cuando los
data cambien y identificar la cantidad mínima de componentes que deben detectar cambios, solo los componentes que podrían haber sido afectados por la actualización de
data. Exploramos el espacio de reactividad en profundidad y comparamos los diferentes enfoques en el contexto de
Angular. Analizamos hooks, transformaciones en tiempo de compilación que permiten la reactividad en tiempo de ejecución, y también señales. Tuvimos muchas discusiones en el equipo para decidir cuál es el modelo de reactividad más óptimo para
Angular y pensamos que son las señales. Quiero repetir nuevamente, no estoy diciendo que las señales sean el mejor patrón de reactividad, punto. Estoy diciendo que fue el mejor para
Angular cuando se trata de hacer compensaciones entre el rendimiento y la experiencia del desarrollador. La forma en que funcionan las señales. Dejas caer tus
data como una señal. Cuando lees el valor de una señal en las plantillas, le indicas a
Angular en qué parte de las plantillas se está utilizando el
data para que pueda habilitar una reactividad muy precisa. Cuando quieres establecer el valor de la señal, invocas el método set, que notifica al
framework que la señal ha cambiado y le permite activar una actualización en las partes afectadas de la vista. No voy a profundizar demasiado en las señales de
Angular aquí, pero hay un ejemplo muy rápido de Sarah Drossner, la directora de ingeniería de la web principal en Google. Puedes encontrar la aplicación en Angular-signals.netdivide.app. Además, para una introducción mucho más completa, puedes consultar Angular.io. Muy bien. Algunas cosas que me encantan de las señales son que son conceptualmente muy simples. Y es claro cuándo el
framework podría estar interesado en actualizar parte de la vista cuando la señal ha cambiado. Además, son un concepto familiar. Incluso si no eres un desarrollador de
Angular, es posible que ya hayas utilizado señales en
frameworks como solid,
react, y otros. Los desarrolladores que comprenden las señales tienen habilidades más transferibles. Y al mismo tiempo, también son interoperables. El mecanismo de detección de cambios de
Angular seguirá funcionando tal como lo ha estado haciendo hasta ahora. Si te gustan las señales, podrás desarrollar incrementalmente nuevos componentes utilizando el nuevo modelo de reactividad y migrar tus componentes existentes. Las señales también permiten una mejor integración con RxJS sin acoplar más el
framework con las API de RxJS. Esto reduce la curva de aprendizaje y también permite a los desarrolladores avanzados aprovechar patrones de reactividad más avanzados. Ahora, hablando de rendimiento, me gustaría discutir otro aspecto, la velocidad de carga de las aplicaciones. El proyecto MoviesApp de taste.js implementa una serie de aplicaciones en diferentes
frameworks para ver un catálogo de una base de datos de películas. Colaboramos con el GDE de
Angular y el CEO de Pushbase, Michael Klatke, en la implementación de
Angular, donde MoviesApp utiliza la directiva de imagen altamente optimizada que el equipo de
Angular desarrolla junto con Chrome y el equipo de Chrome Aurora. Y Michael también aprovechó su proyecto RxAngular, que permite el desarrollo de aplicaciones sin zona incluso antes de que estuvieran disponibles las señales. Cuando implementas esta aplicación en Firebase Hosting, obtienes fácilmente algo así como cien de cien en escritorio en Lighthouse. Sin embargo, se vuelve complicado cuando estás en una red móvil.
Comments