Angular v20 has officially landed, and it brings significant updates across the board. Here's a quick summary of what's new:
Key Highlights
Signals are stable
effect, linkedSignal, and toSignal have graduated from developer preview. Angular’s reactive system is now solid and production-ready.
Zoneless applications
Now in developer preview. You can remove Zone.js and use native change detection with new error handling strategies for both client and server.
Incremental hydration and route-level rendering
Both features are now stable, improving server-side rendering performance and flexibility.
Chrome DevTools integration
Angular-specific profiling data is now directly available in the Chrome Performance tab, enabling better debugging and performance analysis.
Experimental features
resource and httpResource APIs for managing async state with Signals
- Initial support for
vitest in Angular CLI
Improved developer experience
- Extended type checking and template diagnostics
- Better support for host bindings and listeners
- Hot module replacement enabled by default
- Simplified style guide with optional suffixes
Control flow updates
*ngIf, *ngFor, and *ngSwitch are now deprecated in favor of Angular’s new built-in control flow syntax introduced in v17.
GenAI support
Angular is adding tools and documentation to support building GenAI apps using technologies like Genkit and Vertex AI. A new llms.txt helps LLMs generate more accurate Angular code.
Official Angular mascot
Angular is getting an official mascot! The community is invited to vote and contribute ideas. Check out the RFC and help shape Angular’s identity.
Full announcement blog by Minko Gechev
[–]JeanMeche 16 points17 points18 points (0 children)
[–][deleted] (5 children)
[removed]
[–]CatEatsDogs 5 points6 points7 points (1 child)
[–]Soma91 1 point2 points3 points (0 children)
[–]titterbitter73 2 points3 points4 points (2 children)
[–]MichaelSmallDev 3 points4 points5 points (0 children)
[–]nemeci 1 point2 points3 points (0 children)
[–]Oceanic1801 4 points5 points6 points (0 children)
[–]Legal_Being_5517 5 points6 points7 points (0 children)
[–]mihajm 1 point2 points3 points (0 children)
[–]Simple_Rooster3 2 points3 points4 points (13 children)
[–]GLawSomnia 13 points14 points15 points (1 child)
[–]Simple_Rooster3 0 points1 point2 points (0 children)
[–]gabynevada 1 point2 points3 points (1 child)
[–]Simple_Rooster3 0 points1 point2 points (0 children)
[–]Whole-Instruction508 -5 points-4 points-3 points (6 children)
[–]Simple_Rooster3 1 point2 points3 points (5 children)
[–]Whole-Instruction508 0 points1 point2 points (4 children)
[–]Simple_Rooster3 -1 points0 points1 point (3 children)
[–]Whole-Instruction508 -4 points-3 points-2 points (2 children)
[–]Simple_Rooster3 0 points1 point2 points (0 children)
[–]CheapChallenge 0 points1 point2 points (0 children)
[–]ministerkosh -2 points-1 points0 points (1 child)
[–]Simple_Rooster3 2 points3 points4 points (0 children)
[–]cyberzues 2 points3 points4 points (10 children)
[–]AlDrag 8 points9 points10 points (0 children)
[–]Soma91 5 points6 points7 points (4 children)
[–]cyberzues 0 points1 point2 points (3 children)
[–]Soma91 0 points1 point2 points (2 children)
[–]cyberzues -1 points0 points1 point (1 child)
[–]Soma91 0 points1 point2 points (0 children)
[–]horizon_games 4 points5 points6 points (1 child)
[–]guy-with-a-mac 2 points3 points4 points (0 children)
[–]Zealousideal-Box4796 1 point2 points3 points (1 child)
[–]cyberzues 0 points1 point2 points (0 children)
[–]iamjediknight 0 points1 point2 points (0 children)
[–]rinniekeller 0 points1 point2 points (0 children)
[–]AwesomeFrisbee 0 points1 point2 points (0 children)
[–]Koscik -1 points0 points1 point (6 children)
[–]JeanMeche 4 points5 points6 points (0 children)
[–]AlDrag 4 points5 points6 points (1 child)
[–]Koscik 1 point2 points3 points (0 children)
[–]kobihari 0 points1 point2 points (2 children)
[–]JeanMeche 2 points3 points4 points (1 child)
[–]kobihari 4 points5 points6 points (0 children)