Angular's New @for Block Features
7:30
21 сағат бұрын
Angular's New Signal Inputs
10:48
2 ай бұрын
RxJS: Hot vs Cold Observables
4:15
RxJS + Signals: Big Picture
2:07
9 ай бұрын
Transform Data with Angular @Input()
10:28
Пікірлер
@jesusdelarua5995
@jesusdelarua5995 54 минут бұрын
Thank you Deborah!
@deborah_kurata
@deborah_kurata 41 минут бұрын
😊
@NoName-1337
@NoName-1337 Сағат бұрын
why is it better to use @let instead of @if(...; as ...)?
@deborah_kurata
@deborah_kurata 35 минут бұрын
Yeah, I thought about trying to explain why in the video, but it got long so I didn't keep it in. It's about the future. As more and more features of Angular support signals, the current plan is that the let syntax will generate a computed signal in the background. The plan for the 'as' clause doesn't include that. So at some point in the future, signals simplified with the 'as' clause may not re-render when the signal changes. For example, the current plan is that this code: @let snack = selectedSnack(); @if (snack) { {{ snack.numberInStock}} ... } Will always correctly re-render if the selectedSnack() changes. Code like this: @if (selectedSnack(); as snack) { {{ snack.numberInStock}} ... } May not re-render if the selectedSnack() changes. NOTE: The above currently works without issue. But may not in signal-based components. ALSO: This is the current *plan* and that plan may change. But this is what the Angular team is currently telling us.
@ErickCcsVzla
@ErickCcsVzla Сағат бұрын
Excellent. Thank you for the video 😊
@deborah_kurata
@deborah_kurata 41 минут бұрын
Great! Thanks!
@josedejesusbarajaschavez1374
@josedejesusbarajaschavez1374 3 сағат бұрын
Interesting, I feel can be very useful but using let carefully. Thanks Deborah.
@deborah_kurata
@deborah_kurata 2 сағат бұрын
Yes! It seems like something very useful that can easily be misused.
@prasoon2510
@prasoon2510 3 сағат бұрын
Whenever I see your video, it directly fit inside my mind. Your explanation is awesome.. hats off to you ❤
@deborah_kurata
@deborah_kurata 3 сағат бұрын
Thank you so much 😀 Great to hear that they are useful!
@sourabhgarg8400
@sourabhgarg8400 3 сағат бұрын
Awesome @Deborah...as always...but i have been waiting for function based routing video of yours 🫰🏻, better if user based roles access example used😜
@deborah_kurata
@deborah_kurata 3 сағат бұрын
Thank you! And thanks for the suggestion. I'll add it to the list!
@xEnergyGamingHD
@xEnergyGamingHD 4 сағат бұрын
as always, amazing!
@deborah_kurata
@deborah_kurata 4 сағат бұрын
Thank you!
@sachinm3431
@sachinm3431 4 сағат бұрын
You always come up with great content! Very much informative video!!!
@deborah_kurata
@deborah_kurata 4 сағат бұрын
Thank you! 😊
@HenrikBgelundLavstsen
@HenrikBgelundLavstsen 4 сағат бұрын
I could better see the use of @let on observables you might subscribe to multiple times, then you could just do it once. Though signals can handle a lot of that too.
@deborah_kurata
@deborah_kurata 4 сағат бұрын
Yeah, that works great. (I showed an example of that at the end of the video.) I've been moving much of my code to expose state in my services as signals and keep the observables private. So let helps me with the signal type narrowing.
@LeungWong
@LeungWong 4 сағат бұрын
Is there any reason why Angular recommend to use @let over "as" syntax? To me they serve almost the same purpose in that case, and it is more about stylistic opinion.
@deborah_kurata
@deborah_kurata 4 сағат бұрын
It's about the future. As more and more features of Angular support signals, the current plan is that the let syntax will generate a computed signal in the background. The plan for the 'as' clause doesn't include that. So at some point in the future, signals simplified with the 'as' clause may not re-render when the signal changes. For example, the current plan is that this code: @let snack = selectedSnack(); @if (snack) { {{ snack.numberInStock}} ... } Will always correctly re-render if the selectedSnack() changes. Code like this: @if (selectedSnack(); as snack) { {{ snack.numberInStock}} ... } May not re-render if the selectedSnack() changes. NOTE: The above currently works without issue. But may not once we have signal-based components. ALSO: This is the current *plan* and that plan may change. But this is what the Angular team is currently telling us.
@tiberseptim7183
@tiberseptim7183 2 сағат бұрын
​@@deborah_kurataI don't think that happens, because of breaking backwards compatibility
@deborah_kurata
@deborah_kurata 2 сағат бұрын
@@tiberseptim7183I'm sharing what the Angular team is telling the Angular GDEs at this point. Those plans can change, however. Just like how OnPush change detection works differently, it seems that when they do zoneless signal-based components, they don't necessarily have to be backwards compatible with how change detection works now. As long as the "normal" components are backwards compatible.
@richarddefortune1329
@richarddefortune1329 4 сағат бұрын
This is a much needed tool, particularly when writing logic for [ngClass]. @let will free the HTML markups from some styling distractions. Great video as usually.
@deborah_kurata
@deborah_kurata 4 сағат бұрын
Yes! I wasn't sure about it when I first heard of it ... but now that I'm using it I'm finding it to be very useful.
@Matrium0
@Matrium0 5 сағат бұрын
Finally real declarative variables. NgRx had a structural directive *ngrxLet for years, but there was no good way to do this with vanilla Angular. Great video!!
@deborah_kurata
@deborah_kurata 4 сағат бұрын
Thanks! Yep! I really liked *ngrxLet when using NgRx. I was glad to see this added.
@snajper130
@snajper130 5 сағат бұрын
Its becoming more and more like React
@user-wk2ck7xi8p
@user-wk2ck7xi8p 5 сағат бұрын
As soon as, I saw the classic snack example I came here to have some and by the end of the video, I was full (in my head)
@deborah_kurata
@deborah_kurata 5 сағат бұрын
What I great metaphor! I hadn't thought about that. LOL. Thank you!
@chellaack1644
@chellaack1644 5 сағат бұрын
Awesome Thanks ,creating a obsession for next video!
@deborah_kurata
@deborah_kurata 5 сағат бұрын
Excellent! Thank you! 😊
@EmilioDegiovanni
@EmilioDegiovanni 6 сағат бұрын
Great video! is it possible destructuring object/array with @let?
@deborah_kurata
@deborah_kurata 5 сағат бұрын
Thanks! No, destructuring is not possible, at least at this point.
@marshallgraphic
@marshallgraphic 6 сағат бұрын
Nice, I didn't know this feature existed
@deborah_kurata
@deborah_kurata 6 сағат бұрын
Yeah, it's new in Angular version 18.1, which just came out yesterday. 😊
@marshallgraphic
@marshallgraphic 3 сағат бұрын
@@deborah_kurata love it!
@WebGarmony
@WebGarmony 6 сағат бұрын
Thanks!
@deborah_kurata
@deborah_kurata 6 сағат бұрын
😊
@iuliusciorica282
@iuliusciorica282 6 сағат бұрын
A big ❤️ thank you!
@deborah_kurata
@deborah_kurata 6 сағат бұрын
Thank you so much for watching!
@towercontrol4450
@towercontrol4450 6 сағат бұрын
Thanks!
@deborah_kurata
@deborah_kurata 6 сағат бұрын
😊
@rs4267
@rs4267 6 сағат бұрын
Thank you for your courses 😊
@deborah_kurata
@deborah_kurata 6 сағат бұрын
Hope the posts are helpful. Thank you!
@deadlyecho
@deadlyecho 6 сағат бұрын
Love you Deborah, alawys nice hearing your voice, keep up the good content as always ✨️
@deborah_kurata
@deborah_kurata 6 сағат бұрын
That is so very kind of you to say. Thank you!
@diegoj_c6751
@diegoj_c6751 22 сағат бұрын
Awesome! I believe a video about the @let would be nice too
@deborah_kurata
@deborah_kurata 14 сағат бұрын
Thanks! Yep! I was just waiting to record it until after 18.1 came out this morning. The video should be out tomorrow (Thursday) morning PDT. 😊
@AlexPerestrelo
@AlexPerestrelo 2 күн бұрын
Very nicely explained, this works in Angular SSR application ?
@deborah_kurata
@deborah_kurata 14 сағат бұрын
Thank you. SSR is something I haven't needed to do. So I don't know the answer to your question.
@shivappasagar
@shivappasagar 2 күн бұрын
Thanks, this is on point and clear
@shivappasagar
@shivappasagar 2 күн бұрын
Best example for hot observable is behavioural subjects, correct?
@deborah_kurata
@deborah_kurata 14 сағат бұрын
Glad it was helpful! 😊
@deborah_kurata
@deborah_kurata 14 сағат бұрын
Yes. Correct.
@nguyenquylong2961
@nguyenquylong2961 2 күн бұрын
Great!!!
@deborah_kurata
@deborah_kurata 14 сағат бұрын
Thank you! Yeah, I've been considering doing a beginner level Angular course. But it's difficult to find the time with so much new content to post about! 😊
@nguyenquylong2961
@nguyenquylong2961 2 күн бұрын
Excellent explanation, very simple, very easy to understand.
@deborah_kurata
@deborah_kurata 14 сағат бұрын
Great to hear that. Thank you!
3 күн бұрын
Teşekkürler.🙏
@deborah_kurata
@deborah_kurata 14 сағат бұрын
Thank you so very much! My family is very excited to be heading to Turkiye this fall. Any tips?
3 күн бұрын
That is great explanation and i think unfortunately most developers need to know these basics to step forward. You are great and thank you again 😍
@deborah_kurata
@deborah_kurata 14 сағат бұрын
Kind of you to say. Thank you! 😊
@WebGarmony
@WebGarmony 3 күн бұрын
Thank you very much for this material. It seems to me that you should challenge yourself on the UDEMY platform.
@deborah_kurata
@deborah_kurata 14 сағат бұрын
Thank you! 😊 I have about 20 courses on Pluralsight. I tried to sign up to post a few courses on Udemy, but was never able to get past the "validate yourself" step. And I was unable to ever find an actual Udemy person to help me. 😐
@deepakkumarmohapatra4760
@deepakkumarmohapatra4760 4 күн бұрын
Crystal clear example I have ever gone through on signals, Thanks Deborah for such nice explanation.😘
@deborah_kurata
@deborah_kurata 14 сағат бұрын
Excellent! Thank you so much for the kind words!
@yusuflawal9987
@yusuflawal9987 4 күн бұрын
Great job on this course, Deborah! You do a great job of breaking down the concepts into simple actionable steps. I also took your Angular course on Pluralsight a few years ago. You are a brilliant instructor. Thank you!
@deborah_kurata
@deborah_kurata 14 сағат бұрын
Thank you so much!
@julienr8114
@julienr8114 4 күн бұрын
Best KZbin Content for Angular. Thks a lot Deborah.
@deborah_kurata
@deborah_kurata 14 сағат бұрын
Wow, thank you! 😊
@erril8285
@erril8285 5 күн бұрын
Amazing! Thanks! :)
@deborah_kurata
@deborah_kurata 14 сағат бұрын
Thank you! 😊
@joepersonbelgica3980
@joepersonbelgica3980 6 күн бұрын
Very helpful. Thanks
@deborah_kurata
@deborah_kurata 6 күн бұрын
Glad it was helpful! Thank you! 😊
@nbateop9919
@nbateop9919 7 күн бұрын
Couldn't find said video but I find same difficulty making sense on: 24:41 Where does the unsubscribing happens if at all for categorySelectedAction$? I get prods$ is probably un/subscribed in the template using async pipe, same for the fetching in the inner observable(switchmap handles it), however for said var the un+subscribing happens implicitly in a way that alludes me This is obviously a common use case of 1 observable relying on another one that too, has a relation to a third (inner) one. And as long as I have this public platform, I must also comment on the high clarity of videos and the content itself, kudos!
@deborah_kurata
@deborah_kurata 7 күн бұрын
Thank you so much! Yes. Whenever you see this type of syntax: selectedVehicle$ = this.vehicleService.selectedVehicle$.pipe(...) If an async pipe subscribes to the observable on the left, it automatically subscribes to the observable on the right. That includes unsubscribe as well. Same for code like this: vm$ = combineLatest([this.vehicles$, this.selectedVehicle$, this.vehicleClasses$]).pipe( map(([vehicles, selectedVehicle, vehicleClasses]) => ({ vehicles, selectedVehicle, vehicleClasses })) ); Subscribing to vm$ with an async pipe automatically subscribes/unsubscribes to all of the referenced observables: vehicles$, selectedVehicle$, and vehicleClasses$. You can try this out using my github repo here: github.com/DeborahK/Angular-ReactiveDevelopment (In this repo, I use vehicles and vehicle classifications instead of products and product categories, but the basic concepts are the same.)
@nbateop9919
@nbateop9919 7 күн бұрын
​@@deborah_kurata I really appreciate you answering even older videos, that's uncommon. Thank you very much for the detailed explanation, it seemed logical to me that it'd work in similar way, but I couldn't find answer in the docs and I don't like to rely on intuition when it comes to my code.
@paulodetarsofm
@paulodetarsofm 7 күн бұрын
What if instead of creating the variables inside @for we use the $ variables ($first, $last, etc.) directly in the template? Are there any disadvantages?
@deborah_kurata
@deborah_kurata 7 күн бұрын
Yes! The aliasing is optional. I've always done that out of habit, but the let is not required. You can use the variables directly in the template.
@khyr-hl9yt
@khyr-hl9yt 8 күн бұрын
But how to do it inside .ts file ?
@deborah_kurata
@deborah_kurata 8 күн бұрын
Not sure what you are referring to here? The code shown is in a service, which is a .ts file. If you are looking for a pattern based on signals, try this one instead: kzbin.info/www/bejne/qHm0kmeJpcqel6M
@khyr-hl9yt
@khyr-hl9yt 7 күн бұрын
@@deborah_kurata i mean there is no nicer shorter way to subscribe to the observable in typescript file
@deborah_kurata
@deborah_kurata 14 сағат бұрын
There are several ways to subscribe to an Observable: - async pipe: define the observable in the service, reference the observable in the component, bind using the async pipe. - toSignal() method: define the observable in the service and call toSignal, passing in that observable. - manual subscription: call `subscribe()` on the observable.
@MrPankoPanko
@MrPankoPanko 8 күн бұрын
I am impressed. Really good quality video! Looking for more angular tutorials!
@deborah_kurata
@deborah_kurata 8 күн бұрын
Thank you so much! 😊 You can find my Angular playlists here: kzbin.info/aero/PLErOmyzRKOCrzJ9zUEGgC1zVzVGt3hMmV And here: kzbin.info/aero/PLErOmyzRKOCr07Kcnx75Aqh6PWSbIokPB
@denberghvanmartijn
@denberghvanmartijn 8 күн бұрын
This is awesome! would also love a video about best practices in terms of project and folder structure.
@deborah_kurata
@deborah_kurata 8 күн бұрын
Thanks! Great idea!
@khyr-hl9yt
@khyr-hl9yt 8 күн бұрын
I am curious to know why people don't prefer to keep their business logic inside service file, instead they prefer to use a service as a rest API layer only ?
@deborah_kurata
@deborah_kurata 8 күн бұрын
It is recommended that business logic go in a service. This sample application was focused on the @for block, so I didn't take the time to move all of the signals from the component to the service, if that's what you are referring to. And definitely things like displaying the row number and odd/even highlighting would be UI and not really business logic, right?
@EmilioDegiovanni
@EmilioDegiovanni 8 күн бұрын
@empty and @for track without declaring a new component method are great features
@deborah_kurata
@deborah_kurata 8 күн бұрын
Yep! 😊
@Vroemo
@Vroemo 8 күн бұрын
Thx for the video. I was wondering why colors where expressed like 255 255 255 and #ffffff. I thought they where different but apparently not👍
@deborah_kurata
@deborah_kurata 8 күн бұрын
Glad it was helpful!
@babutschi
@babutschi 8 күн бұрын
Very helpful! Thanks.
@deborah_kurata
@deborah_kurata 8 күн бұрын
Great to hear! 😊
@Edgars82
@Edgars82 8 күн бұрын
if using track function should not we call it with this new @syntax? track trackSnak(snack)?
@deborah_kurata
@deborah_kurata 7 күн бұрын
You can just pass the function name. That's easier/shorter. But if you did want to call it manually, you'd have to pass both arguments: trackSnack($index, snackItem)
@ali-13392
@ali-13392 9 күн бұрын
Fantastic, thank you so much Deborah!!
@deborah_kurata
@deborah_kurata 7 күн бұрын
Thanks! 😊
@rolygonz1964
@rolygonz1964 9 күн бұрын
❤❤❤❤❤❤❤❤ thank you
@deborah_kurata
@deborah_kurata 7 күн бұрын
Thanks to you! 😊
@ChrisTapay
@ChrisTapay 9 күн бұрын
Concise and helpful. Thanks Deborah!
@deborah_kurata
@deborah_kurata 7 күн бұрын
Glad to hear that. Thank you!
@Brendan2Alexander
@Brendan2Alexander 9 күн бұрын
nice. wasnt aware of odd, even, count.
@deborah_kurata
@deborah_kurata 7 күн бұрын
Glad that it was useful! Thanks!
@hamadykais9318
@hamadykais9318 9 күн бұрын
Powerful!!
@deborah_kurata
@deborah_kurata 7 күн бұрын
Yep! Thanks!