Hi Deborah, in the video you give an example of primitives being immutable. So the code total = 42; // (1) total += 10; // (2) means that in (1), total is pointing at a memory with value 42. Then, in (2), total is pointing at a different memory address with value 52. But how can we re-access the value 42 ?? (We don't know the memory address for this anymore ?)
@MANAHILEJAZ-s7z2 күн бұрын
Thanks for your help, there's is a same concept of mutability and immutability in python also
@sanjaykumar-ci7oh4 күн бұрын
So except for http calls which is unavoidable observable , we can replace all the other observable like subjects with signals , is it ? 🤔. And is that th new norm going to be ?
@deborah_kurata3 күн бұрын
Thank you for watching the video! Http calls are not necessarily unavoidable. You can use fetch instead of HTTP Client to retrieve data using promises. Personally, I prefer HTTP Client (which as you said returns an observable). Using signals won't necessarily replace all Observables, especially when dealing with event-based actions. Things like tracking/reacting to keypresses, when you want every emitted value, you'll still want Observables. So yes, signals will replace many observables, especially those used to manage state. But we'll still want observables for event-based actions.
@CodingAbroad5 күн бұрын
Could this completely replaxe ngrx in your opinion?
@deborah_kurata3 күн бұрын
For simple applications, yes. For more complex applications and for large teams, probably no. And ngRx, and of course signalStore, are becoming more signal based.
@CodingAbroad5 күн бұрын
7:24 this sounds like combineLatest. So would this be the best practice to replace combineLatest with this approach?
@deborah_kurata3 күн бұрын
In some cases, yes. Especially those cases where combineLatest was used to handle multiple query parameters. In other cases, there may still be use for combineLatest, such as when handling events from multiple sources (keypress and mouse move for example).
@doncooper63545 күн бұрын
The gold standard of teaching, not simply for Angular. We are blessed to have you.
@deborah_kurata3 күн бұрын
That is so very kind of you to say! I appreciate that! 😊
@raldors74995 күн бұрын
I've seen some great Angular and rxjs teachers, but I think you are the best among them. Love your content
@deborah_kurata3 күн бұрын
Thank you so very much! 😊 Thanks for watching!
@mohammedashiq38926 күн бұрын
Awesome
@deborah_kurata3 күн бұрын
Thanks!
@sureshkumar-ns4hf7 күн бұрын
Happy new year. I went through your courses and all are so nicely explained ❤.Thanks
@deborah_kurata3 күн бұрын
Thank you so much! All the best in 2025! 😊
@Jonathan-kraai7 күн бұрын
CTRL + SHIFT + L made my day!
@deborah_kurata3 күн бұрын
Great tooling for the win! LOL. Glad it was useful. 😊
@hamza2011838 күн бұрын
Thank you very much!
@deborah_kurata3 күн бұрын
I'm glad you found it helpful! 😊
@haridulal91069 күн бұрын
This is by far the best video on angular signals that I have come across...thank you so much for the content....
@deborah_kurata8 күн бұрын
Thank you! I'm really glad you enjoyed it! 😊
@huizhao20509 күн бұрын
Another great video again. Would you please advise me can I use resource() or rxResource() to replace combineLatest in rxjs?
@deborah_kurata8 күн бұрын
Thanks! Do you have a code snippet of your combineLatest so I have a clear idea of your objective? I used to use combineLatest to do something with a retained observable when another observable changes. If these are all signals instead, the linkedSignal() can often do the same job. It depends on your specific scenario.
@huizhao20507 күн бұрын
@@deborah_kurata I meant that if I can use Resource or RxResource to handle multiple http request. It seems that it can only handle one request with loader function in Resource or RxResource. To handle multiple request, it seems that we still can not avoid to use combineLatest. I asked Grok AI. It gave me the answer. `import { inject, Injectable } from '@angular/core'; import { resource } from '@angular/core'; import { HttpClient } from '@angular/common/http'; @Injectable({ providedIn: 'root' }) export class MultiResourceService { private http = inject(HttpClient); combinedResource = resource({ loader: async () => { const [users, products] = await Promise.all([ this.http.get<User[]>('url1').toPromise(), this.http.get<Product[]>('url2').toPromise() ]); return { users, products }; } }); }` or another way `private http = inject(HttpClient); usersResource = rxResource({ loader: () => this.http.get<User[]>('url1') }); productsResource = rxResource({ loader: () => this.http.get<Product[]>('url2') }); combinedResource = combineLatest([this.usersResource.result$, this.productsResource.result$]).pipe( map(([users, products]) => ({ users, products })) ); combinedResource.subscribe(result => { console.log(result.users, result.products); });`
@MrGilband10 күн бұрын
simple clear and even fun
@deborah_kurata8 күн бұрын
Yep! Signals are fun! Thanks
@MattBodman10 күн бұрын
Merry Christmas and Happy New Year from Downunder. Your videos are excellent. Keep up the great work!
@deborah_kurata8 күн бұрын
Thank you so much! All the best for 2025! 😊
@DannyAwad11 күн бұрын
mind blowing!!!
@deborah_kurata8 күн бұрын
Yep! Model inputs are so useful, it's been difficult finding a scenario for using an Output anymore. Thanks!
@hasokeric136211 күн бұрын
What do we use for post and put... feels like if we stick to one like rxjs it's consistent vs doing gets one way and posts and puts another way
@deborah_kurata8 күн бұрын
We'd still use HTTPClient (or fetch), so that would be the same. We just wouldn't need to return the result as a signal, so it wouldn't need to be wrapped in a resource.
@clintonlobo509412 күн бұрын
Wishing you all the best for 2025. Thanks for your videos, it has helped me 😊
@deborah_kurata8 күн бұрын
Thank you! Happy New Year!
@jigneshdalvadi839012 күн бұрын
Marry Christmas 🎄 Deborah
@deborah_kurata8 күн бұрын
Thank you! All the best for 2025! 😊
@elenamazyrina715812 күн бұрын
Merry Christmas, Happy New Year! And many new wonderful videos on your channel next year☺️
@deborah_kurata8 күн бұрын
Thank you! All the best for 2025! 😊
@SunilM1512 күн бұрын
So nicely explained with examples, thanks !!!
@deborah_kurata10 күн бұрын
I'm glad you found it helpful! 😊 Thanks for watching!
@Brendan2Alexander12 күн бұрын
Rock on into 2025! Thank u for all your great content
@deborah_kurata10 күн бұрын
Thanks, I appreciate it! 😊 Happy New Year!
@tdekoekkoek13 күн бұрын
Good video, but a lot of work to do what ngModules did already so well. Standalone is a pain IMO
@deborah_kurata8 күн бұрын
Thanks! As someone that taught Angular for many years, I saw numerous new Angular developers really struggle with ngModules. Conceptually, standalone is easier to understand. Your component needs two-way binding, import FormsModule. Your component needs child component ABC, import ABC. And for simple scenarios, standalone is a bit easier. Bootstrapping can be a bit challenging, which is why the Angular CLI and language services are trying to help with that. ngModules shine when there are a set of components all with similar importing needs. And you still can use them for that if you wish.
@tarik23boss13 күн бұрын
is it fair to say the following. that when looking at text-start. the text is called the base utility class and the -start is the modifier? When they are combined together as text-start they made a utility class?
@summers_173mx13 күн бұрын
Best for you and your family, thanks for all your videos
@deborah_kurata8 күн бұрын
Thank you! Wishing you and yours a wonderful 2025 as well. 😊
@ashishnayak266613 күн бұрын
Happy holiday to you too
@deborah_kurata8 күн бұрын
Happy Holidays! 😊
@richarddefortune132913 күн бұрын
Happy holidays to you too
@deborah_kurata8 күн бұрын
Happy Holidays! 😊
@ElioFerrero13 күн бұрын
Happy Holidays Deborah! Wish to see you with news from Angular
@deborah_kurata3 күн бұрын
Should be an exciting year for Angular in 2025!
@alonsonavastack13 күн бұрын
Felices fiestas Deborah!
@deborah_kurata3 күн бұрын
All the best in 2025! 🎉
@Vizardespa13 күн бұрын
Owwwww I hope the very best too Deborah, your videos have been of great help with Angular, I wish for the Angular team to have that signal based forms and obviously would be looking forward to your videos on it; my best regards ✨
@deborah_kurata13 күн бұрын
Thank you! Happy Holidays! 😊
@leitohardy967913 күн бұрын
As for me, the main desire besides Angular can only be peace for people, so that the war ends.
@deborah_kurata13 күн бұрын
Yes! Peace on earth for 2025. 😊
@BhushanKamathe_B2K13 күн бұрын
Happy holidays🎉, Mam
@deborah_kurata13 күн бұрын
Thank you! Happy Holidays! 😊
@trustingod013 күн бұрын
Happy Holidays and Thank You for keeping us up to speed.
@deborah_kurata13 күн бұрын
Happy Holidays to you too! 🎄😊
@DraaElMizan13 күн бұрын
Nice one Deborah. Hope your dreams will come true "form signals". Merry Christmas & Happy New Year. All the best.
@deborah_kurata13 күн бұрын
Thank you! All the best to you and yours. Happy Holidays! 😊
@edvinasbosas13 күн бұрын
Could you elaborate how reactive forms would benefit from signals? Enjoy the holidays and have a great 2025!
@deborah_kurata13 күн бұрын
Thank you! The Angular team is currently discussing how best to incorporate signals into forms. From the Angular roadmap: "We plan to analyze existing feedback about Angular forms and design a solution which addresses developers' requirements and uses Signals for management of reactive state." Link: github.com/angular/angular/blob/8c5db3cfb75700dd64f4c8c073554c7086835950/adev/src/content/reference/roadmap.md It is currently unclear whether signal-based forms will replace both reactive forms and template-driven forms, whether it will attempt to unite them, or whether signal features will be added to both types of forms. There are many goals with this project, including: 1) Make observables optional. Currently every Angular project automatically downloads RxJS because it uses it for many of its features, including valueChanges and statusChanges in reactive forms. 2) Manage change detection using signals. As Angular moves toward Zoneless components, it depends more and more on using signals to mark change detection. So there is a desire to manage form inputs with signals as well. We'll know more as we start to see prototypes and/or designs come in 2025.
@toilatin-smd14 күн бұрын
Thank you for the video! I want to ask that how could we do in different signal way without using linkedSignal? I mean reset the 'quantity' when 'selectedVehicle' has changed.
@deborah_kurata13 күн бұрын
Glad it was useful. 😊 To answer your question, we would use the same techniques we've been using for years ... depending on the application: - Use an event tied to the select box - Use a property setter on the selectedVehicle property - Use a behaviorSubject - Others?
@RomanWaves14 күн бұрын
amazing explanation, thank you very much !
@deborah_kurata13 күн бұрын
Thank you! Signals are a "game changer" for Angular!
@AlexLikeGolf15 күн бұрын
This video is what I was looking for. I am currently using the Basic Store approach for State Management, and this video is perfect for my migration to Signals.
@deborah_kurata13 күн бұрын
Excellent! I'm happy it was helpful. 😊
@H2-oe4cu15 күн бұрын
I guess it would be nice if the resource API exposed a numerical progress value as opposed to an isLoading boolean. That way we could introduce a progress bar, like some websites do.
@mohamedosama372816 күн бұрын
could you please give me courses path for your courses on pluralsight ♥
@deborah_kurata13 күн бұрын
That is very kind of you to ask! Currently, I only have one course on Pluralsight: "RxJS and Angular Signals Fundamentals". Thought it's currently over 1 year old and doesn't have the latest signal features. The other Pluralsight courses have been retired. Pluralsight would no longer allow me to update the "Angular: Getting Started" course. ☹ If you are learning Angular from scratch, you could still start with the "Angular: Getting Started" for the basic concepts. Then move on to my "Angular Topics" playlist for more information on newer features: kzbin.info/aero/PLErOmyzRKOCr07Kcnx75Aqh6PWSbIokPB All the best on your learning journey!
@bobr840716 күн бұрын
Your videos are the best, Deborah!
@deborah_kurata13 күн бұрын
That's so kind of you to say. Thank you! 😊
@gabrieloyarzo652417 күн бұрын
Great video! I have a question, when you have multiple components that make almost the same thing, for example a UserListComponent and its respective UserService, then the same for CustomerListComponent and CustomerService, how do you avoid using the same logic for the lists and the services? Is there a pattern to follow in these cases?
@pavelernestonavarroguerrer787118 күн бұрын
Incredible useful and interesting video, thank you so much.
@deborah_kurata17 күн бұрын
I'm glad you found it useful. Thank you! 😊
@avrimalka945018 күн бұрын
Hey, dose it mean that when I define resource / resourceRX the loader function runs (which means that http request is fired)?
@deborah_kurata17 күн бұрын
Yes. When the resource declaration is processed at runtime, the loader function runs. If you specify the `request` property of the resource, the loader will re-run any time the `request` signal changes. It may *not* issue the HTTP request if you have logic in the loader function preventing it. For example, this: private filmResource = rxResource({ request: () => ({ vehicle: this.vehicleService.selectedVehicle(), index: this.movieIndex() }), loader: ({request}) => { if(request.vehicle) { return this.http.get<Film>(request.vehicle.films[request.index]); }; return of(undefined); }, }); It won't issue the HTTP request unless the selectedVehicle has a value (isn't undefined).
@avrimalka945015 күн бұрын
@@deborah_kurata Thanks, just some general question, it seems Angular is releasing more and more versions on signals which is great, but the thing is, should we wait for a stable one? for instance, now that we have resource and linked signal, it seems that before and after of these changes angular saves us lot of coding, what do you think?
@ElioFerrero18 күн бұрын
Hi Deborah, I follow you step by step to modify the code, but I don't understand why doesn't appear the 'Loading...' only ... loading vehicles' that is write in the html template
@deborah_kurata17 күн бұрын
The first "...Loading" message comes from Stackblitz. Are you using Stackblitz or some other editor? (It's basically irrelevant for the code we are writing. I just pointed it out because it appears when using Stackblitz. Sorry for the confusion.)
@ElioFerrero17 күн бұрын
@deborah_kurata Ah ok now is clear. When I use Stack blitz, appear but when download the code and use VSCode I don't see it 🙂
@matheusjordan603118 күн бұрын
A dublagem para portugues me ajudou demais, excelente video, conteudo muito util. Trabalho com Angular a 6 anos e de la pra ca sempre estou aprendendo e me atualizando.
@deborah_kurata18 күн бұрын
Fico feliz em saber que a dublagem funciona bem para você. Tudo de bom! 😊
@RsPippen18 күн бұрын
thank you for the amazing content as always!!
@deborah_kurata18 күн бұрын
I'm glad you found it useful! Thanks! 😊
@olalekanraheem465518 күн бұрын
Your courses are always great. I started web dev with react but the first name I learned about Angular from your courses on plurasight made me switch to Angular since 2020 and I never regret it. Thanks so much for those content
@deborah_kurata18 күн бұрын
That is so very kind of you to say. Thank you! Glad you are a part of the Angular community. 😊