Zoneless Angular Applications in V18

Поділитися
Вставка
  • Опубліковано 25 лис 2024

КОМЕНТАРІ • 148

  • @julienr8114
    @julienr8114 6 місяців тому +33

    As a non native English speaker it's so amazing how it's really easy to understand when you spoke. Thks a lot for this demonstration.
    This is not far of the "on push" + signal on Angular 17. Signal-based components are coming soon

    • @deborah_kurata
      @deborah_kurata  6 місяців тому +3

      So great to hear that the content was clear and useful!
      Yep, "on push" + signals gets you quite of the way toward zoneless. All the best!

    • @LarsRyeJeppesen
      @LarsRyeJeppesen 5 місяців тому +13

      She speaks like an AI generated voice.

    • @mikeandtherest
      @mikeandtherest 5 місяців тому +1

      There is one small distinction that we need to make between OnPush and Zone.js: the OnPush CD strategy states *what* components should refresh, while Zone.js states *when* an Application.tick() should be triggered/scheduled. For which reason, OnPush should still be used with zoneless apps.

    • @deborah_kurata
      @deborah_kurata  5 місяців тому

      @@mikeandtherest Yes, you are correct. You should still use OnPush for zoneless apps.

  • @joanpablojimenez5763
    @joanpablojimenez5763 6 місяців тому +15

    Thanks Deborah! Your Angular tutorials are fantastic keep up the great work.

    • @deborah_kurata
      @deborah_kurata  6 місяців тому +1

      That is kind of you to say. Thank you! 😊

  • @AlexLikeGolf
    @AlexLikeGolf 6 місяців тому +6

    This is a priceless explanation in plain English. I don't know how practical or feasible it is to do a series of videos on "Life before and after Angular 18 new features." Your Angular Signal videos were excellent and they showed the contrast.

    • @deborah_kurata
      @deborah_kurata  6 місяців тому +1

      Thank you so much! 😊 I'll continue to work on more content!

  • @Brendan2Alexander
    @Brendan2Alexander 6 місяців тому +4

    Thanks Deborah. Already rejiggered my latest angular project to go zoneless. Took a couple of days to finish signalizing all my bindings. But generally wasn't too difficult. Didn't appreciate till now how peculiar the zonejs approach was. The zoneless signals approach seems intuitive and eliminates the voodoo. Goodbye ExpressionChangedAfterItHasBeenCheckedError!

    • @deborah_kurata
      @deborah_kurata  6 місяців тому

      Excellent! Congratulations!
      All the best.

  • @bmiguelmf
    @bmiguelmf 5 місяців тому +1

    No BS... just an amazingly effective change detection/zone.js explanation

  • @raihankhan291
    @raihankhan291 6 місяців тому +5

    Thanks Deborah, your explanation are just excellent!
    Please please please get a course on angular 18 from scratch!
    Will be really helpful for the Angular community!

    • @deborah_kurata
      @deborah_kurata  6 місяців тому +8

      Thank you so much!
      Yes, I'm currently starting to lay out some ideas for a UA-cam-based Angular: Getting Started course for v18+. We'll see what happens! 😊

    • @albertkao5964
      @albertkao5964 6 місяців тому

      @@deborah_kurata Great!

  • @fernando_her85
    @fernando_her85 6 місяців тому +4

    Amazing video, thank you so much!, you have a really nice and calm voice, love it!

  • @miguelmelgar2895
    @miguelmelgar2895 5 місяців тому +2

    This is quality video, no single min waste.

  • @sakarsr
    @sakarsr 5 місяців тому +1

    Oh, what a great teacher you are! Thank you for your time in making this video on Zoneless. Have a good day and Good health. 🥰

    • @deborah_kurata
      @deborah_kurata  5 місяців тому

      That is so kind of you to say. Thank you very much! All the best. 😊

  • @cristianrodriguez4360
    @cristianrodriguez4360 5 місяців тому +2

    You are the kind of teacher I would have liked to have had. Thanks!!

    • @deborah_kurata
      @deborah_kurata  5 місяців тому

      That is so very kind of you to say. Thank you! 😊

  • @АндрейМарковский-э5д
    @АндрейМарковский-э5д 3 місяці тому

    я плохо понимаю английский, но благодаря детальным примерам и хорошей речи я понял этот урок.
    Качество ваших уроков невероятно высокое, вы потрясающая! Спасибо!

  • @syedmohammadnejat
    @syedmohammadnejat 5 місяців тому +2

    Best angular teacher 🤩

    • @deborah_kurata
      @deborah_kurata  5 місяців тому +1

      That is kind of you to say! Thank you! 😊

  • @berboko3081
    @berboko3081 6 місяців тому +2

    Thanks you Deborah, loving your work so much !

    • @deborah_kurata
      @deborah_kurata  6 місяців тому

      That is kind of you to say. Thank you! 😊

  • @metric152
    @metric152 6 місяців тому +1

    this was a great video. i love the way you demoed each type of update the template handles. i can't wait to start using signals and getting rid of zones.

    • @deborah_kurata
      @deborah_kurata  6 місяців тому

      Thank you so much!
      Let me know how it goes getting rid of zones.

  •  4 місяці тому

    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 😍

  • @taiwokazeem9014
    @taiwokazeem9014 6 місяців тому

    I've been hearing about zoneless but never knew in detail what it brings to the table until this video

    • @deborah_kurata
      @deborah_kurata  6 місяців тому

      So glad to hear that the video was useful!

  • @patricsteiner8483
    @patricsteiner8483 2 місяці тому

    wow, just randomly found this channel. very clear and brief explanation, no bullshit, thanks :D

    • @deborah_kurata
      @deborah_kurata  2 місяці тому

      So great to hear that it's useful. Thank you!

  • @jsuryakt
    @jsuryakt 5 місяців тому

    Fantastic video explaining zone.js concept and why to go zoneless

  • @cooleboy50
    @cooleboy50 5 місяців тому +1

    Even when I make the counter a signal and press the increment button, I thought only the element bound to the signal, which is counter, would get re-rendered, but in this case the Tick value is also being re-rendered. I thought the whole point of signals was that only the elements that actually changed were being re-rendered and Angular wouldn't bother with the things that didn't.

    • @deborah_kurata
      @deborah_kurata  5 місяців тому +2

      With signals, it isn't "only the elements that actually changed", it's the "view that has changed". How much that "view" entails is currently still being worked on.
      At this point, that "view" is the component. As I understand it, the hope is to make the "view" a smaller piece (such as just a @for block for example). But there are a lot of unknowns here yet.

  • @sushantkunkekar2155
    @sushantkunkekar2155 5 місяців тому

    Best video ever I watched on zoneless😍

  • @belzy91
    @belzy91 4 місяці тому

    Hi Deborah, I learned so much about Angular from you on Pluralsight. 🙂

    • @deborah_kurata
      @deborah_kurata  4 місяці тому

      Excellent! So happy to have helped on your Angular learning journey! 😊

  • @richarddefortune1329
    @richarddefortune1329 6 місяців тому +1

    This video title should be "zoneless demystified". Thank you so much.
    Btw, still planning to record an entire "angular fundamentals" course this summer?

    • @deborah_kurata
      @deborah_kurata  6 місяців тому +2

      😁 Thank you for watching.
      Regarding a course: I'm currently in the process of trying to figure that out. I'm not sure what it should look like.
      I could do a large 6+ hour single video. Or I could do a sequence of smaller, 5-10 min videos.
      The large course means I won't have time to post much else for several months. The smaller videos would allow me to post as I get them done. But they won't be "hooked together" like a course would be. And may not flow quite as seamlessly.
      Thanks for asking!

  • @mariyannonchev1355
    @mariyannonchev1355 6 місяців тому +1

    Thanks, simple and clear. Looking forward for more Ng vids! :)

  • @vic_shine
    @vic_shine 5 місяців тому

    wow, awesome explain ❤ please don't stop making Angular tutorials and similar feature videos for us 😊

    • @deborah_kurata
      @deborah_kurata  5 місяців тому +1

      This type of motivation is valuable! Thanks!

  • @Matrium0
    @Matrium0 5 місяців тому

    Hands on + great explanation. Just GREAT content, thank you!

  • @turboheadcrab666
    @turboheadcrab666 5 місяців тому +1

    Great video, like always!
    I was under impression that component lifecycle hooks depend on zone.js, and have been writing code without using them since v17. If my components are based on signals, is there any point in the lifecycle hooks? Do they still work in a zoneless change detection?

    • @ai-insightful-podcasts
      @ai-insightful-podcasts 24 дні тому

      Do lifecycle hooks still make sense for components based on signals? Deborah what do you think? Thanks

    • @turboheadcrab666
      @turboheadcrab666 23 дні тому

      @@ai-insightful-podcasts in our refactor we didn't have to use them at all. Everything can be done in the constructor.

  • @albertkao5964
    @albertkao5964 6 місяців тому

    I learned a lot from your UA-cam and Pluralsight courses!
    I am looking forward to your UA-cam-based Angular: Getting Started course for v18+.
    My employer had cut budgets and jobs, so I had lost access to all Pluralsight courses.

    • @deborah_kurata
      @deborah_kurata  6 місяців тому +1

      Thank you!
      And yes, I'm in the "figuring it out" stage of putting together a UA-cam course. 😊

  • @ai-insightful-podcasts
    @ai-insightful-podcasts 24 дні тому

    Excellent explanation. I'm about to start a new non-critical project in angular. Should start it with v18 ou v19-rc so that I have access to the RxResource API? Thanks for the advice.

  • @elayamaransekar3790
    @elayamaransekar3790 4 місяці тому

    Thanks Deborah! Could you please do the full videos of the latest Angular i.e v17 or v18. I learned Angular watching your videos. So keen to learn the latest one from your videos if possible. Many Thanks🙏

    • @deborah_kurata
      @deborah_kurata  4 місяці тому

      That is so kind of you to say. 😊
      I had seriously considered doing that, but I would have to drop everything for 3 months to do a full course and I'm not able to do that right now.
      For now, maybe my playlists would help?
      Here is one for general/new Angular topics: ua-cam.com/play/PLErOmyzRKOCrzJ9zUEGgC1zVzVGt3hMmV.html
      Here is one for Angular signals: ua-cam.com/play/PLErOmyzRKOCr07Kcnx75Aqh6PWSbIokPB.html
      Here is one on Angular Signals + RxJS: ua-cam.com/play/PLErOmyzRKOCrZ7aDGw4WYCtlQUVyKLRyq.html

    • @elayamaransekar3790
      @elayamaransekar3790 4 місяці тому +1

      @@deborah_kurata Thank you very much

  • @nemes1x
    @nemes1x 5 місяців тому

    You are the best Deborah!! Thank you!!❤

    • @deborah_kurata
      @deborah_kurata  5 місяців тому

      That is kind of you to say. Thank you! 😊

  • @clashclan4739
    @clashclan4739 5 місяців тому

    wow!! simply super and very clearly explained. thank you so much

    • @deborah_kurata
      @deborah_kurata  5 місяців тому

      So nice of you to say. Thank you! 😊

  • @yassine_klilich
    @yassine_klilich 5 місяців тому

    Thank you so much for this amazing explanation, you are an amazing instructor

    • @deborah_kurata
      @deborah_kurata  5 місяців тому

      That is kind of you to say. Thank you! 😊

  • @LucianoGuimarães-s8f
    @LucianoGuimarães-s8f 5 місяців тому

    impeccable work. good job. such a good content to watch :3

  • @DejanFilipov-gv8qz
    @DejanFilipov-gv8qz 5 місяців тому

    Thank you Angular doctor 💯

  • @erichivan5419
    @erichivan5419 6 місяців тому

    Excelente contenido Débora muchas gracias 👍🏽

    • @deborah_kurata
      @deborah_kurata  6 місяців тому

      Thank you for the kind words! 😊
      Gracias por tus amables palabras.

  • @haroldpepete
    @haroldpepete 6 місяців тому +1

    i think there is no a better way to start a day, thanks, i have a short question, when some feaature is in experimental phase, how long does it take to be ready and it's no longer experimental?

    • @Brendan2Alexander
      @Brendan2Alexander 6 місяців тому +2

      I damned the torpedoes and am going into production without zonejs. Am hoping that the only problem I will have is some minor breaking changes when later versions come out.

    • @deborah_kurata
      @deborah_kurata  6 місяців тому +1

      Thank you! 😊
      The Angular team has often moved from experimental to stable at the next major version (about 6 months). Though some things have been faster (point release) and some much slower (I think effect() is still not marked as stable.)

    • @deborah_kurata
      @deborah_kurata  6 місяців тому

      You aren't the only one on this path. 😆 All the best!

  • @CeezGeez
    @CeezGeez 6 місяців тому

    last I heard react was generally more performant than angular. I wonder if going zoneless changes that.

  • @KaranOdedra
    @KaranOdedra 5 місяців тому

    Just amazing. Thanks a lot :)

  • @lespacedunmatin
    @lespacedunmatin 5 місяців тому

    Very clear ! Thank you.

  • @angelocolacicco997
    @angelocolacicco997 5 місяців тому

    Congratulations for your way to teach some hard concepts and make them very easy amd straightforward.
    then.... with zoneleas we won't need anymore of "ChangeDetectionStraategy.oPush" for input property, if we use signal inputs, right?
    or do we still need of it?

    • @deborah_kurata
      @deborah_kurata  5 місяців тому

      Thank you!
      The Angular team is still recommending use of ChangeDetectionStrategy.OnPush. From an Angular team member: "Not using OnPush would mean that the component and all its children get refreshed any time its host is refreshed". (At least as of now, even with zoneless.)

  • @Nabulio85
    @Nabulio85 5 місяців тому

    Great Deborah ❤

  • @DejanFilipov-gv8qz
    @DejanFilipov-gv8qz 5 місяців тому

    Thank you Angular doctor

  • @prasadmadushan
    @prasadmadushan 5 місяців тому

    Perfect explanation

  • @cverde1234
    @cverde1234 5 місяців тому

    I propose injecting $interval and $timeout functions that would trigger change detection. For async we could use a promise library called Q and inject it as $q... My preference for AngularJS is never going away😁

    • @deborah_kurata
      @deborah_kurata  5 місяців тому +1

      😆 It's been so long it took me a minute to understand your comment! LOL.

  • @МаринаКрупник-г1ю
    @МаринаКрупник-г1ю 2 місяці тому

    Thanks. Very usefull tutorials

  • @kush.mikashita
    @kush.mikashita 6 місяців тому

    Thanks Deborah!

  • @jeromemoulin5241
    @jeromemoulin5241 5 місяців тому

    So nice !! When you sell a book on Angular !! we need it. ^^

    • @deborah_kurata
      @deborah_kurata  5 місяців тому +2

      Thanks! With how quickly Angular updates, a book is definitely not in my future. 😃 I am considering a UA-cam Angular course. Would that be of interest?

    • @jeromemoulin5241
      @jeromemoulin5241 5 місяців тому +1

      @@deborah_kurata yes of course 🥳

    • @ai-insightful-podcasts
      @ai-insightful-podcasts 24 дні тому

      @@deborah_kurata definitely!!

  • @alexpanteli3651
    @alexpanteli3651 6 місяців тому

    Love your lessons

    • @deborah_kurata
      @deborah_kurata  6 місяців тому +1

      Thank you so very much! 🙏🏼 😊

  • @ianokay
    @ianokay 6 місяців тому

    Is it really a smaller bundle size if you add a signals library? 😋 I'm jk. It makes sense that a system of writing imperative change event emitting everywhere would be more performant than automatic no overhead optimistic change detection triggers. I wonder however if native async provided a hook if we would still be trying to move away so hard.

    • @deborah_kurata
      @deborah_kurata  6 місяців тому +1

      I know you said you were kidding ... but signals isn't a separate library. It's built into Angular/core. (Not sure how much bigger that got with signals lol)

  • @osamaabozahra
    @osamaabozahra 5 місяців тому

    Great video ❤

  • @paweld.9542
    @paweld.9542 5 місяців тому

    With Angular 18 and zoneless environment there is a Material Autocomplete issue - no options are shown :(

    • @deborah_kurata
      @deborah_kurata  5 місяців тому +1

      Could you note this as an issue in GitHub somewhere?

    • @paweld.9542
      @paweld.9542 5 місяців тому +1

      @@deborah_kurata Yes, I will do it :)

  • @_Greenflag_
    @_Greenflag_ 5 місяців тому

    Thank you for the informative video. But I still have a question left: does it still make sense to use the 'changeDetection.onPush' in a zoneless Angular application?

    • @deborah_kurata
      @deborah_kurata  5 місяців тому

      The current recommendation is to still use OnPush. Not using OnPush still means that the component and all its children get refreshed any time the parent is refreshed

    • @_Greenflag_
      @_Greenflag_ 5 місяців тому

      @@deborah_kurata Thanks a lot for your answer. Any advices for the following situation ? I create a signal of a new instance of a class, then create a signal property in this class, then update it later but changes are not reflected in my template. Is this because this is an object, so Angular has trouble updating it?
      this.test = signal(new Test())()
      ======
      Inside Test class
      count = signal(0)
      ...
      count.update(() => 3)
      ======
      In my template : test.count()
      but no changes are reflected.

    • @deborah_kurata
      @deborah_kurata  5 місяців тому

      @@_Greenflag_ The template should be test().count() since test and count are both signals.
      Here's an updated example: stackblitz.com/~/edit/stackblitz-starters-qetzzj

    • @_Greenflag_
      @_Greenflag_ 5 місяців тому +1

      @@deborah_kurata True that Signals have to be read by calling their getter function. Thank you!

  • @Erril_Ferndal
    @Erril_Ferndal 3 місяці тому

    sounds great :)

  • @WebGarmony
    @WebGarmony 2 місяці тому

    Thank you! I deleted the zone from the current project

    • @deborah_kurata
      @deborah_kurata  2 місяці тому

      Great! How's it working out so far? 😊

  •  4 місяці тому

    Teşekkürler.🙏

    • @deborah_kurata
      @deborah_kurata  4 місяці тому

      Thank you so very much!
      My family is very excited to be heading to Turkiye this fall. Any tips?

  • @toxaq
    @toxaq 6 місяців тому

    Simply incredible quality on your videos. Thanks very much. Will be a long time before my main project goes zoneless, still part way through ngupgrade from 1.7.8 😎

    • @deborah_kurata
      @deborah_kurata  6 місяців тому

      Thank you for the kind words.
      Wow, yes there is a big path from 1.7.8 to v18. The good news is that there is a lot from < v16 that you don't need to learn now. (Like ngModules and *ngIf/*ngFor!)
      All the best!

    • @toxaq
      @toxaq 6 місяців тому

      @@deborah_kurata yes, totally. It was actually the v15 announcement that stopped us doing a vue or svelte migration. StandaloneComponents has us half way to v16 so far!

  • @HoNow222
    @HoNow222 6 місяців тому +1

    i still have to understand if this is all AI voice, AI picture etc.

    • @deborah_kurata
      @deborah_kurata  6 місяців тому +2

      Why would you say that? These types of comments make me sad. 😞Yes, my midwestern accent/cadence is a bit flat. I continue to work on it. I often wonder if I should just save the time and go with an AI voice instead.
      And if you are serious, you can watch some *live* video of me at the beginning of my courses. Here is one: ua-cam.com/video/pICJdbC7j0Q/v-deo.html
      Or you can check out any of the videos of me from the live ngConf sessions, such as this one: ua-cam.com/video/VhIkDQ1TWl8/v-deo.html

    • @HoNow222
      @HoNow222 6 місяців тому +1

      ​@@deborah_kurata Holy quack!! Honeslty the voice for me was too "perfectly standard american" to not be AI, but in a good way. But knowning it is real I think makes it 100% better so please keep up the good work!!
      Other tutorials on angular makes things look so hard.
      (Also, in the conference talk you sounded much more natural but maybe it's just me ahah)

    • @sumiflow
      @sumiflow 5 місяців тому +2

      @@deborah_kurata You should take it as a complement. I also briefly wondered if it might be an AI voice, but only because you so flawlessly pronounce every word.

    • @deborah_kurata
      @deborah_kurata  5 місяців тому

      @@sumiflow Thank you. 😊

  • @Niachan666
    @Niachan666 6 місяців тому

    Great

  • @bonnes04
    @bonnes04 5 місяців тому

    💯

  • @rommelalastra5992
    @rommelalastra5992 5 місяців тому

    ohh just like reacts hooks

    • @deborah_kurata
      @deborah_kurata  5 місяців тому

      I don't know react so I'm not sure of this comparison.

  • @ТарасСюсько-х2ж
    @ТарасСюсько-х2ж 21 день тому

    Thanks, but without zone.js libraries works bad )

    • @deborah_kurata
      @deborah_kurata  18 днів тому

      Thank you for watching.
      And yes, there is going to be a delay in third-party libraries updating to zoneless. So it may be a while before apps using these libraries can also go zoneless. But I would assume that for many of these libraries, this work is in progress.

  • @ArtemAleksashkin
    @ArtemAleksashkin 4 дні тому

    I don't like this. I need to rework everything. Also I need to call change detection every time. 👎

    • @deborah_kurata
      @deborah_kurata  4 дні тому

      You don't need to go zoneless now. It's still marked as experimental. Consider waiting until everything is signal-based. Then you won't have to manually call change detection.

  • @LarsRyeJeppesen
    @LarsRyeJeppesen 5 місяців тому +1

    Zoneless rocks, but so many 3rd party libraries require zoneJS to be present: @angular/fire is an example of such a library.

    • @deborah_kurata
      @deborah_kurata  5 місяців тому +1

      True. I assume that's part of the reason zoneless is only experimental at this time. Over time, I would expect the libraries to move over to zoneless as well.

  • @igorr4682
    @igorr4682 6 місяців тому +1

    soon it will all work like VUE.js lol

    • @deborah_kurata
      @deborah_kurata  5 місяців тому

      I don't have much experience with VUE.js. Is this a good thing?😊