Alex and Pavel from the Angular Signals team discuss the adoption of signals, the new mental model, migration paths, community integrations, and the future roadmap for Angular.
Angular Signals is a new reactive solution developed by the Angular team to address issues with the current reactivity model in Angular.
Signals provide a notification mechanism for the framework to know where data is used and changed, allowing for more efficient updates and improved performance.
The Angular team values the input and feedback from the Angular community, recognizing that they are the ones who use the framework on a day-to-day basis.
The Angular team is focused on gradually rolling out Signals and integrating them into existing state management offerings.
Deep dives
Introducing Angular Signals as a Reactive Solution
Angular Signals is a new reactive solution developed by the Angular team to address issues with the current reactivity model in Angular. Signals provide a notification mechanism for the framework to know where data is used and changed, allowing for more efficient updates and improved performance. Unlike observables used in RXJS, signals focus on values that can change over time, providing a clearer and simpler approach to managing state. This change was driven by the need to better match how developers were actually using Angular and the challenges they faced with observables. The Angular team worked closely with the community to gather feedback and ensure that the new solution meets the needs of a wide range of developers.
The Distinction Between Dirty Checking and Reactivity
The Angular team recognized the limitations of the dirty checking approach in managing state and delivering notifications. Dirty checking relies on comparing previous and current values to determine changes, which can lead to slower performance and subtle bugs. In contrast, reactive systems like signals provide a more precise way to track changes and dependencies, allowing for more efficient updates and reducing unnecessary computations. Signals offer a simpler and clearer mental model for managing state and reacting to changes, making it easier for developers to work with Angular and avoid the complexities of observables and event-driven architectures.
Engaging the Angular Community through the RFC Process
The Angular team values the input and feedback from the Angular community, recognizing that they are the ones who use the framework on a day-to-day basis. To ensure that changes reflect the needs and perspectives of the community, the Angular team follows an RFC (Request for Comments) process. This process involves proposing changes, such as introducing signals, and actively seeking feedback and insights from the community. By engaging the community and considering diverse viewpoints, the Angular team can make informed decisions and create solutions that better meet the needs of developers using Angular.
Transitioning to Signals and Zoneless
The Angular team is focused on gradually rolling out Signals, which provide a new reactive primitive for the core library. The goal is to enrich the framework to respond to Signals and optimize change detection. This includes introducing Signal-based components, as well as updating internal packages to support Signals. The team is also working on the zoneless experience for applications, testing, and server-side rendering. Dev tooling is another area of focus, aiming to improve the debugging and development experience.
Collaboration with the State Management Community
The Angular team has been engaging with projects like NGRX to integrate Signals into existing state management offerings. Their goal is to ensure a smooth transition for applications using NGRX to adopt Signals. The team recognizes the importance of working together with the community to make gradual improvements and consider the needs of both existing applications and new projects.
The Future of Angular and Feedback
The Angular team is open to feedback and encourages developers to reach out through GitHub issues or other forums. The evolution of the framework will take time as it goes through different stages, but the team is dedicated to creating the best tool possible and valuing the insights and experiences of developers in the Angular community.
Encouraging Developers to Try Angular
Even if developers are not currently using Angular, the team encourages them to give it a try and provide feedback. Whether you're a React developer or using another framework, exploring Angular can contribute to the overall understanding and improvement of web development tools.
KBall & Amal interview Alex & Pavel from the Angular Signals team. They cover the history, how the Angular team decided to move to signals, what the new mental model looks like, migration path & even dive into community integrations and future roadmap.
Changelog++ members support our work, get closer to the metal, and make the ads disappear. Join today!
Sponsors:
Fly.io – The home of Changelog.com — Deploy your apps and databases close to your users. In minutes you can run your Ruby, Go, Node, Deno, Python, or Elixir app (and databases!) all over the world. No ops required. Learn more at fly.io/changelog and check out the speedrun in their docs.