This week, we’re back to using the 3-2-1 format of the newsletter. I’m posting a few essential articles to revisit, updates to know about, and one question to ponder:
Three short articles to revisit:
Do you know there are several types of RxJs subjects? And when to use each kind? I cover 3 of them in this article.
ng-conf will be back this fall in the US! That is great news. On top of that, Angular Connect will be back in London, UK on September 13th 2025. Tickets are already available!
Next week on March 27th, we’ll be running Frontend Nation Angular Day with Minko Gechev, Sarah Drasner, and more GDEs and Angular team members! It’s a free, online event. Save the date now and register here.
One question to think about:
Did you know that the Angular dev tools display current Signal values? Makes it super easy to debug Angular code without breakpoints!
This week, we’re back to using the 3-2-1 format of the newsletter. I’m posting a few essential articles to revisit, updates to know about, and one question to ponder:
Three short articles to revisit:
You probably know about lazy-loading, but have you considered using the @defer block with its prefetching and different trigger options? These features give you a lot more control over lazy-loading and don’t rely on routing at all.
Two Angular updates:
Angular 19.2 is available! It comes with quite a few interesting experimental features, such as a new httpResource (the signal-based alternative to HttpClient), a defaultValue option for resources, the ability to use JavaScript template strings in Angular templates, as well a new CLI migration to use self-closing tags: ng generate @angular/core:self-closing-tag
On March 27th, we’ll be running Frontend Nation Angular Day with Minko Gechev, Sarah Drasner, and Jessica Janiuk from the Angular team! It’s a free, online event. Save the date now and register here.
One question to think about:
Have you tried the resource API? It’s promising, and the Angular team is considering it as the solution for reactivity with Signals and without RxJs. Check out my quick tutorial here.
As usual, we’re using the 3-2-1 format of the newsletter this week. I’m posting a few essential articles to revisit, updates to know about, and one question to ponder:
Angular 19.2 just got its first RC version, and it features a new httpResource, which aims to replace the HttpClient with a Signal-based approach. Manfred Steyer published a preview of the feature here.
The FREE Angular Weekend is happening this weekend at certificates.dev! A great way to get free certification training and take practice tests to see how you’d fare in the Angular mid-level certification exam.
One question to think about:
Do you still use jQuery or lodash with Angular? Most features of these libraries are now either natively supported (such as object copy) or have Angular alternatives, such as queries and template reference variables.
As usual, we’re using the 3-2-1 format of the newsletter this week. I’m posting a few essential articles to revisit, updates to know about, and one question to ponder:
The Angular team announced its priorities for 2025: Signal forms, RFC for selectorless components (meaning no more imports needed for components !), promote zoneless to developer preview, and replace Karma for unit testing.
Our FREE monthly online workshop is scheduled for this Thursday, don’t forget to register now. I’ll talk about different simple strategies to migrate from RxJs to Signals in Angular.
One question to think about:
Signals are stable, with the exception of the effect function. Since Angular is going all in on Signals, with Signal forms being next in the pipeline, have you started migrating your apps to use Signals instead of RxJs? Attend our next free workshop to see me do it live.
This week, we’re using the 3-2-1 format of the newsletter once more. I’m posting a few essential articles to revisit, updates to know about, and one question to ponder:
Three short articles to revisit:
HTTP interceptors can be used in several ways to assist with authentication, refactoring code, caching data, and more! Read more about them with this tutorial.
Angular 19.1 is now available! The most interesting addition is a new CLI command to automatically clean-up unused imports: ng g @angular/core:cleanup-unused-imports
Happy New Year! Let’s get back to the 3-2-1 format of the newsletter. I’m posting a few essential articles to revisit, updates to know about, and one question to ponder – all good knowledge to kickstart 2025 the right way:
My next FREE online workshop is scheduled for January 23rd, and you can register here. I’ll cover techniques and best practices to migrate to Angular Signals:
This week, we get back to the 3-2-1 format of the newsletter. I’m posting a few essential articles to revisit, updates to know about, and one question to ponder – all ideas of good practices to adopt in 2025:
Three short articles to revisit:
eslint is a nice and easy way to ensure you (and your team) are following best practices and not using shortcuts or making any mistakes in your code. Learn the basics of eslint here, how to fine-tune your eslint config so it fits your needs (you can disable rules you don’t like), and also how to use extra rules for RxJs to favor the use of the async pipe, for instance.
Two Angular updates:
Ng-conf has released more videos from the 2024 event for free on YouTube. This is another good way to improve your Angular skills during the Holiday season! We’re still waiting for a date for the 2025 event.
The Angular team started creating a playlist of short videos (30 secs each) about Angular 19—a nice and fast way to learn about some of the new features of Angular 19.
One question to think about:
What’s your current Angular version? The end-of-year slowdown could be an excellent opportunity to find some time to upgrade to v19. Use my upgrade guide here for more info.
I’m posting a few essential articles to revisit, updates to know about, and one question to ponder this week:
Three articles to revisit and associated updates with Angular 19
When we need to initialize an application with server data (environment variables, for instance), we can use Angular’s APP_INITIALIZER. For more information, revisit this tutorial about APP_INITIALIZER.
Angular 19 introduced a new syntax for this feature. This function must be called in the array of providers of your app bootstrap as follows:
With Angular 19, we can pass data to a RouterOutlet to share information between parent and child components as follows:
One question to ponder this week:
How do you pass data to your routed components? Do you use any of the features described above or just inject services in the routed component? Is there anything you could improve in your architecture using these tools?
Angular 19 is a massive release with lots of improvements and new features. I covered all signal-related updates earlier. Today, let’s focus on what’s changed with standalone features in the framework.
First, standalone is the new default! In Angular 19, you don’t need the standalone: true option in your decorators, that’s the default value now. Instead, you want to use standalone: false for features that are not standalone and belong to a ngModule.
When you upgrade to Angular 19, ng update will automatically remove standalone : true where you use it and use standalone: false where needed. No need to worry about it!
Second, the Angular compiler will warn you when you have unused imports in your standalone components. This is great to help keep your code clean:
Finally, if you want to make sure all your components are standalone, you can use the new "strictStandalone": true option in the angularCompilerOptions.
Then, if your create a non-standalone feature, you’ll get an error: TS-992023: Only standalone components/directives are allowed when 'strictStandalone' is enabled.
Angular 19 is now available with many different updates. A video recap (23 minutes long) of all these features is available on YouTube.
There is a lot to unpack, so this week, my focus is on all signal-related updates.
First, signal-based input, output, and view query functions are all stable APIs as of v19, which means you can use all of them safely. Here is the complete list of such stable features:
Second, to help you migrate your old @Input() and @ViewChild()to their signal-based equivalents, new Angular CLI migration commands are available:
ng generate @angular/core:signal-input-migration ng generate @angular/core:signal-queries-migration ng generate @angular/core:output-migration
Initial feedback from these automated migrations is very positive.
The third update, a new type of Signal (in developer preview) called linkedSignal. This new function also creates a computed signal that can be written manually. In other words, a computed signal is read-only, whereas a linkedSignal is writable while preserving automatic update and computation features of a computed signal.
The final and most significant update is the addition of a resource API to Angular. This is a big one for several reasons: It enables total signal-based reactivity while using Promises or RxJs to fetch updates.
The above code will send a request to /users with the proper sort parameter every time the sortOrder() signal value changes. The result is an object with lots of information about the resource:
The approach is similar to ngx-signalify or TanStack Query, and it looks promising. Now, resource is in an experimental state, which means “do not use it in production yet” (the API will likely change), but you can learn more about it here. Because there’s so much more to it, I’ll write a dedicated post and/or do a long-form video workshop on that topic.
And that’s it for the four main updates regarding Signals in v19. I could add a fifth one with the effect() function still in developer preview but now allows writing other signals by default (no more need to add the option to perform such writes).