Rethinking reactivity with Angular Signals

Поділитися
Вставка
  • Опубліковано 9 тра 2023
  • Introducing Signals, a new reactivity model in Angular. Signals equips you with more high quality tools for fine-grained reactivity, while setting you on a well lit path and providing you with guardrails to make your app performant. Learn how to start exploring the developer preview in Angular v16 today.
    Resources:
    Angular Signals cipher demo → goo.gle/angular-signals-demo
    Angular Signals cipher demo code → goo.gle/signals-demo-code
    Angular Signals docs → goo.gle/angular-signals
    Speakers: Emma Twersky, Simona Cotin
    Watch more:
    Watch all Angular Sessions → goo.gle/IO23_angular
    Watch all the Technical Sessions from Google I/O 2023 → goo.gle/IO23_sessions
    Watch more Web Sessions → goo.gle/IO23_web
    All Google I/O 2023 Sessions → goo.gle/IO23_all
    Subscribe to Angular → goo.gle/Angular
    #GoogleIO
  • Розваги

КОМЕНТАРІ • 44

  • @Angular
    @Angular  Рік тому +3

    Watch all the Angular Sessions → goo.gle/IO23_angular_pin

  • @Matrium0
    @Matrium0 Рік тому +29

    Good video overall! I just feel like it would have been better to pick a simpler example. The decipher game is fun and a part of me likes that it's not your everyday-create-a-counter-example (we have seen that 1000 times), but to me it felt really distracting and added unnecessary complexity to the understanding of the core concepts.
    Actually, now that I think about it the counter example, boring as it may be, might actually be good for that very reason. You grasp the requirements within seconds and can concentrate on learning the new things. Also you can easily compare it with other implementations and really grasp the beauty of signals.
    Got burnt a bit too much by "early adoption", but I can't wait for a stable version. Thank you!

    • @BienenChef
      @BienenChef Рік тому +1

      Yeah, like you said I think the cipher example is a little too complex to get a quick overview on how everything comes together.

  • @CrownPrince2
    @CrownPrince2 Рік тому +18

    I don't know why Angular team loves to complicate things. You could have explained signals easily with like an auth service that changes an authenticated signal from false to true and how can it be used in template or imported in other services and update UI component accordingly. But NOOO, we have first to figure out what does this app do, and then get lost in code

  • @omarmarzougui2901
    @omarmarzougui2901 Рік тому +4

    Best update since angular 2
    Thanks to angular core team

  • @Chris-zb5nm
    @Chris-zb5nm Рік тому +5

    I never expect some Front End devs to understand what a Full Framework means in an enterprise solution. But Angular is actually what we call a Full Framework. It's a complete solution for enterprise projects. I always liked it.

  • @justincantley9705
    @justincantley9705 Рік тому +1

    Great explanation. I'm looking forward to trying these out for the first time.

  • @indylawi5021
    @indylawi5021 Рік тому

    Great explanation! thank you. I have been a fan of reactivity since Rx. Looking forward to the full release of Signals in Angular.

  • @enc1ner
    @enc1ner Рік тому

    Great stuff!

  • @rajeevkumararyan8138
    @rajeevkumararyan8138 Рік тому

    Great advancement 💟

  • @bushbuddyplatypus
    @bushbuddyplatypus 7 місяців тому

    Oh this feels good.

  • @Ostap1974
    @Ostap1974 Рік тому +1

    Tour of Heroes with signals, please.

  • @vissaf
    @vissaf Рік тому +2

    All these changes are great but it feels like they are for getting other/new people on board with Angular. People already using Angular can do similar things with Subjects and stuff? But then again its all backward compatible so I'm not complaining. :)

  • @hansmuster5291
    @hansmuster5291 10 місяців тому

    what does "support for inputs, outputs and queries" mean in the timeline related to Angular Signals?

  • @_Yaroslav
    @_Yaroslav 11 місяців тому

    I'd like to see some materials by the angular team on signals + rxjs

  • @hansschenker
    @hansschenker Рік тому

    signal - computed - effect in ELM : Model (signal or state) - Update ( or computed, recomputed state) - Effect ( update view with recomputed state)

  • @radulaski
    @radulaski Рік тому +1

    This feels very similar to what MobX does.

  • @MagicNumberArg
    @MagicNumberArg Рік тому +15

    10 years later you conceeded that KnockoutJS / MobX were right all along...

    • @Matrium0
      @Matrium0 Рік тому +2

      Vue has also a veeeeeery similar concept. Simple and beautiful

    • @nomoredarts8918
      @nomoredarts8918 Рік тому

      ​@@Matrium0 meanwhile Elm lang - that's cute 😂

    • @user-fu1yv6qi7m
      @user-fu1yv6qi7m 9 місяців тому

      @@Matrium0 They copied it, it is the same with a strange name "SIGNALS"

  • @AnoopSeth
    @AnoopSeth Рік тому

    how PWA will support there

  • @ss-dy1tw
    @ss-dy1tw Рік тому +1

    This computed concept is not very new. It was there in knockoutJS since 2016. The computed concept is similar like KnockoutJS computed/pure computed observables. Glad that Angular is adding it finally. Based on my experience in KnockoutJS, computed observables creates lot of performance overheads. Hence knockoutJS added pure computed observables. I am very confident that Angular team definitely takes care of performance headaches with these concepts.

  • @_dinesh
    @_dinesh Рік тому +2

    I really wish angular would have stayed away from the terminologies like signal, computed, effect etc. It's very confusing it also increases the learning curve. Rather I would have used the same naming convention from Dart or Kotlin such as streams (sink & streams) from the Dart (Or) coroutines & flow from Kotlin (Or) even redux - State & Action & selector.

    • @TychoPrice
      @TychoPrice Рік тому +1

      It’s not that confusing

    • @_dinesh
      @_dinesh Рік тому

      @@user-if1de8pt2j I would assume if they are renaming API they would also change the name of the library. The name & the api seems very react-ish. I feel like that can be somehow improved.

  • @user-fu1yv6qi7m
    @user-fu1yv6qi7m 9 місяців тому

    this is a copy from Computed, data(vue2) ref(vue3) in VueJs and in useCallback, useEffect and useState from react

    • @user-fu1yv6qi7m
      @user-fu1yv6qi7m 9 місяців тому

      And the Effect is a copy from Watchers from Vue

  • @hansschenker
    @hansschenker Рік тому +7

    No matter how many simple reactivity primitives (signal, computed , effect ) brings into the framework, the overcomplicated Template is the problem (TemplateOutlet, TemplateOutletContext, ....) - The ideal Template is an HTML string sprinkled with Template Literal Tags: (${age}). The overcomplicated Template neeeds an overcomplicatede Compiler!

    • @envo2199
      @envo2199 Рік тому +1

      dont know my angular html looks like actual html with {{}} bindings :)

    • @JBuchmann
      @JBuchmann Рік тому

      I've gone through years of Angular use and never used such things as TemplateOutlet and TemplateOutletContext, etc. But just last week I did finally find a good use for TemplateOutlet, haha. Most of the time Templates will look just like regular HTML with some Angular binding stuff mixed in.

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

    var signal = useState

  • @Cheesyonmytoasty
    @Cheesyonmytoasty Рік тому

    So instead of counter+=1, with the ui updating. It's going to be counter: Signal = new Signal(0);counter.next(counter.value + 1); all over the codebase... seems like a lot of boilerplate to help angular out :(

    • @TayambaMwanza
      @TayambaMwanza Рік тому

      No
      To create a counter it would be
      counter = signal(0);
      To update counter, it would be
      counter.update(value => value+1);

  • @RickLaBanca
    @RickLaBanca Рік тому +3

    Oh boy yet more terms to describe old concepts!
    And bad terms.

  • @kaoutharbouhsini6207
    @kaoutharbouhsini6207 10 місяців тому

    "Is this feature now stable for use in production apps?"

    • @Angular
      @Angular  10 місяців тому +1

      We are still in developer preview. What part of this new API are you most interested in?

    • @kaoutharbouhsini6207
      @kaoutharbouhsini6207 10 місяців тому

      Thanks for your response.
      We are actually interested in all functions of the signal. Our goal is to replace all synchronous functions of RxJS with signal functions.

    • @Angular
      @Angular  10 місяців тому +1

      Awesome!

  • @lifeTechnicolorGuy
    @lifeTechnicolorGuy 7 місяців тому

    I like the video but the example is not good

  • @mugatu2017
    @mugatu2017 Рік тому +4

    We alredy have subjects to multicast data to our subscribers

    • @JBuchmann
      @JBuchmann Рік тому

      I think this is to make it simpler for new Angular devs, and in the long term to totally get rid of Zone.js for change detection.