Zustand React State Management Course (Simple Redux Alternative)

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

КОМЕНТАРІ • 112

  • @NiklasZiermann
    @NiklasZiermann Рік тому +88

    Once again, thank you for giving me the opportunity to post this course to the channel. I'm really happy to already see so many people appreciating it!
    Have a good day y'all :)

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

      Hast du richtig gut gemacht 👌

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

      @@eduardalbrecht9585 Danke dir 😄

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

      Great Course ❤‍🔥

    • @deumolo
      @deumolo 11 місяців тому +1

      You have a gift for teaching, man ... please continue with it.
      This was an incredibly good tutorial.
      Thank you.

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

      Update: If you stumble across some issues with the bit about equality functions, then you should probably be checking out the createWithEqualityFn function from version 4.4.0 and up. Because the way to do it that I used in the course is now deprecated.

  • @kiddhkane
    @kiddhkane 2 місяці тому +1

    I like how you iterate steps, starting from very basic to more and more advanced, instead of doing a whole task in one go. It really helps see the necessary steps and debug.

  • @FunctionGermany
    @FunctionGermany Рік тому +14

    6:35 "shadow DOM" is a browser API which is not what React uses. the correct name is virtual DOM or VDOM. Vue uses it too.

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

      Virtual DOM isn't an official term. Even the React team is hesitant to call it that and wants to move away from that terminology.

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

      @@Hizbullla you're probably technically correct, but VDOM is currently the commonly known and used term for this approach. it's definitely much "more correct" than shadow DOM, which something completely different 😄

  • @jwhubert91
    @jwhubert91 Рік тому +8

    So awesome that this was uploaded on the same day I was looking for it! Really looking forward to something easier to use than Redux- React is overdue for something hooks based that doesn't involve a lot of boilerplate template junk code just to get running

  • @mahdimey4990
    @mahdimey4990 4 місяці тому +5

    nice css tutorial👍

  • @ONealOmbu
    @ONealOmbu Рік тому +16

    After 2 months, I'm glad to see there's an expanded video on Zustand. Now I can continue building my e-commerce application but please next time focus on the topic. You took longer time focusing on styling which wasn't necessary. Thanks.

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

    this is so cool. I'm building a react native app and I needed a better option than context and thank you for this. this really helped me.

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

    Thanks a lot for your presentaion, from your video I can understand and drive zustand to manage the react state. From my understanding, it generates a private memory area in the brower side where various types of object and values as well as function can be operated in this memory block. and It can be accessed by outside components. very good job Niklas.

  • @user-lm6hy6oy5w
    @user-lm6hy6oy5w 11 місяців тому +2

    quick, simple. efficient, straight to the point, great video

  • @user-gm3lg8gp3m
    @user-gm3lg8gp3m 11 місяців тому +1

    "The Why Zustand?" section was brilliant.

  • @soumadip_skyy_banerjee
    @soumadip_skyy_banerjee Рік тому +8

    Ein Deutscher! Wow.. Toll! Ich komme aus Indien, aber ich versuche Deutsch zum lernen.. Es ist nicht einfach, but, eehh.. es geht! Super Tutorial! 👌🏻 🇮🇳❣️🇩🇪

  • @baldcoder_
    @baldcoder_ Рік тому +5

    I wonder if not using a Provider can be considered a pro. Without a Provider you can't reuse the same instance of a store for a different part of the app. There's already an issue and a StackOverflow question about lacking that ability in Zustand.
    It's also not faster than Context per se. It's faster than a Context that passes state to all consumers. It's very simple to create a smarter context that allows selective reacting that Zustand (and other libraries) feature.
    Zustand is awesome, but I feel like people keep missing out on the power of Context. I think I'll write an abstraction just to show how powerful it is 😅

  • @iamjustlearner5866
    @iamjustlearner5866 10 місяців тому +2

    great demonstration in the real case!

  • @krismondevv7356
    @krismondevv7356 Рік тому +39

    I watch a lot of tutorials and please when you want to show an exact technology prepare your css before the tutorial,,

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

      I agree. I don't care about CSS, I'm here to learn about zustand

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

    i was expecting a zustand tutorial but this guy keeps writing css :D

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

    Very nice tutorial.A little confusing though on why you chose to name the tasks object as title and state. status would be a less confusing name

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

    I was worried looking at redux boilerplate, pheww. Thanks mate.

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

    This came at the right time....just started looking at zustand yesterday

  • @budaloops
    @budaloops Рік тому +8

    Am I the only one who's confused with this explanation?

    • @MdJahidHasan-xe7nz
      @MdJahidHasan-xe7nz 2 місяці тому

      no, bro. count me in. This tutorial maybe not for beginner

  • @idunexist
    @idunexist Рік тому +6

    no offense, but i think it spends a lot of time writing css............not ideal for the impatient

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

    This helps me a lot, thx

  • @pandastory-abookseriesabou8568

    ​👌🏻​ Good as always 🚀​

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

    Thanks, Niklas, you are a fantastic teacher. I would love to learn more from you. Do you have any Udemy course?

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

    This is so cool. Thank you 👍

  • @binukbe4401
    @binukbe4401 Рік тому +10

    This tutorial needs another tutorial tbh 😕

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

    Awesome tutorial

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

    i used to learn a very simple way to use zustand, your way seems making things complicated. Maybe your way is too advance level for me.

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

    21:20 Soon after adding shallow. It says useStore is deprecated?

  • @AL-rb7ku
    @AL-rb7ku 11 місяців тому

    this is a gold mine thank you!!

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

    it will be sure to use vite react, right?

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

    Amazing Video, I would love to see one for Jotai as well with Jack Harrington

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

    why not typescript ?

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

    Thank you for course.

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

    You should not use Shadow DOM if you mean Virtual DOM. Shadow DOM is Browser API and part of Web Components.

  • @lored6811
    @lored6811 Рік тому +22

    As a German I have to say that you should look up how to say Zustand

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

    great job

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

    Thank you for pronouncing Zustand correctly 😂

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

    The best state lib

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

    Thanks for the work

  • @user-lm6hy6oy5w
    @user-lm6hy6oy5w 11 місяців тому +1

    if you get error: "TypeError: Cannot convert undefined or null to object" use this import "import * as matchers from '@testing-library/jest-dom/matchers';"

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

    I'm learning code I'm picking up patterns and what to do fast BUT I really don't know the words to type all the time....its tough

  • @0xtz_
    @0xtz_ Рік тому

    I need this 😮 thanks

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

    Great Tutorial.

  • @user-wf6eq9og1o
    @user-wf6eq9og1o Рік тому

    Oh, that's fantastic, down with the redux!

  • @okkkk88612
    @okkkk88612 10 місяців тому +4

    too fast, too much css, a little bit messy tutorial

  • @NehalDamania
    @NehalDamania 9 місяців тому

    Nice Tutorial, Can we create similar tutorial on Jotai and a comparison of Both. Will be really helpful

  • @ak-loz
    @ak-loz Рік тому +3

    Timestamps please :)

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

    really comprehensive video, Effort much appreciated.

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

    Greate tutoral but it would be nice to leave if you left out the css and just focus on zustand.

  • @krish-Ach
    @krish-Ach Рік тому

    Can a browser db like watermelon db be used instead of state management in react

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

    @25:29 what does he uses for the error appear on the line it ocurrered?

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

    thanks a lot 🎉

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

    Ty ❤

  • @RewlTheNoob
    @RewlTheNoob 12 днів тому

    You really should have used a CSS library.
    And it wasn't a good choice to call "status" as "state", because it's confusing in a State Management course, especially since in Redux a lot of boilerplate prop was called "state".
    Besides that it wasn't a bad course, but it could be better.

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

    thanx good try but no need in styling here and why to call a variable state, it's confusing cuz state is reserved in redux ex

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

    🔥

  • @Viva-07
    @Viva-07 7 місяців тому

    Seems more like css video than zustand...but when the concept was edplained, it was good Thank you

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

    MAH, MAAN! Just made fookin Trello from scratch! LMAO!! rad skills!!

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

    First view ❤

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

    Yayyyy🎉🎉🎉🎉🎉🎉

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

    thanks!

  • @justine10997
    @justine10997 Місяць тому

    I needed a quick solution to learn Zustand and I had to give up after battling with CSS for 45 minutes (first time I actually watch a tutorial in x0.75). The tutorial is good and I believe there is a lot of work behind. Just not a Zustand course.

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

    In the tutorial @22:26, evluating longest and then go over every element to see whether it exists is a bit slow. Just return false directly when the length of both elements differ.

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

      what about if they have different values ?

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

      ​@@mikelan9854 You go over all the elements then if the length is the same. But you don't have to if the size already differs.

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

    Very poor demonstration of Zustand! If I was too see Zustand for the first time from this guy I would had never have used it!

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

      i was just seeing zustand for the first time and wanted to not learn it anymore . Thank you , i'll now look for something simple and better than a chaotic css tutorial.

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

    🔥😍

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

    WOW

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

    👍👍

  • @simpsomk
    @simpsomk 8 місяців тому

    Good but you should read what shadow DOM is

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

    👍🏼👍🏼👍🏼

  • @alexandershpilka5848
    @alexandershpilka5848 11 місяців тому +1

    Nice tutorial in general but a bit chaotic.

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

    I'm going to create my TODO app next using this course and firebase

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

    23:03 Here is the source, I don't think it was possible for it to have been written that way at the time.
    ```ts
    // ... ignore
    const keysA = Object.keys(objA)
    if (keysA.length !== Object.keys(objB).length) {
    return false
    }
    for (let i = 0; i < keysA.length; i++) {
    if (
    !Object.prototype.hasOwnProperty.call(objB, keysA[i] as string) ||
    !Object.is(objA[keysA[i] as keyof T], objB[keysA[i] as keyof T])
    ) {
    return false
    }
    }
    return true
    ```

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

    Endlich ein Deutscher

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

    Consider not using margin on flex children to space them evenly. Use gap.

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

    please make a course for game maker

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

    Why waste so much time in styling? Its a state management tutorial...

  • @ישיקוסובר
    @ישיקוסובר Рік тому

    Plese meka chaybot in pythun

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

    Not a very intutive explanation

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

    Bear

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

    You lost me at "Javascript" .... 😐

  • @usamaashraf4930
    @usamaashraf4930 5 днів тому

    Zustand 10% css 90%

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

    Here because context providers ruined my day

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

    Too much CSS

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

    I have this problem, in unit testing with vitest, can someone explain or provide a solution for this, this is the error. Sorry just a first timer in unit testing.
    TypeError: Cannot convert undefined or null to object
    ❯ setupTests.js:6:8
    4| import "@testing-library/jest-dom";
    5|
    6| expect.extend(matchers);
    | ^
    7|
    8| afterEach(cleanup);

    • @user-lm6hy6oy5w
      @user-lm6hy6oy5w 11 місяців тому +1

      import * as matchers from '@testing-library/jest-dom/matchers'; this fixed it for me

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

    Freecodecamp 🤝 student❤

  • @allsunday1485
    @allsunday1485 Рік тому +5

    The styling is a waste of time