React State Management - Intermediate JavaScript Course

Поделиться
HTML-код
  • Опубликовано: 22 ноя 2024

Комментарии • 345

  • @renielrabie9035
    @renielrabie9035 Год назад +50

    I don’t think I’ve ever commented on a RUclips video, but Jack Herrington is one of the best teachers I’ve seen on the channel. Thank you, Jack. Thank you for a fun time learning state in React!

  • @andreainvernizzi8510
    @andreainvernizzi8510 2 года назад +32

    I learnt more about useState in 20 mins explained here than in a whole term of web development diploma from conventional education.
    I am so thankful to value-oriented YT channels like this one, are free sources of knowledge and value to everyone at the cost of an internet connection.
    Thank you for delivering this content about React

    • @lukas.webdev
      @lukas.webdev Год назад

      I just posted a video about the same topic (in 2023) - maybe this could be interesting for you as well. 😉

    • @marvinfok65
      @marvinfok65 11 месяцев назад

      Agreed! I no longer want to learn from conventional education! They set a time frame and just throw everything to you and expect you to know and they considered their job done!

  • @melkenhoning158
    @melkenhoning158 2 года назад +22

    This instructor is really skilled at explaining in just enough detail, good choice!

  • @Hizbullla
    @Hizbullla 2 года назад +157

    Despite React's popularity it's so hard to find proper intermediate to advanced explanations about the nuances of the library. Seems like most React developers just copy paste and adjust code until they get the desired outcome. It's for this reason that I love Jack for his contribution to the tutorial landscape.

    • @Castro_Gabriel
      @Castro_Gabriel Год назад +2

      I feel the same way.

    • @vonderklaas
      @vonderklaas Год назад +3

      You are right, Jack, Theo & some other dudes help with more advanced / senior things, rather than typical todo lists and stuff

    • @technical3199
      @technical3199 Год назад

      yeah same here lol

    • @mosesmolepo1702
      @mosesmolepo1702 11 месяцев назад +1

      I'm guilty

    • @Farouk-Dev
      @Farouk-Dev 5 месяцев назад

      Samee ❤

  • @germanguerci1744
    @germanguerci1744 11 месяцев назад +1

    This is the most important video about React I have ever seen in over 3 years of using React. Thank you!

  • @Crevulus
    @Crevulus Год назад +4

    This man is the reason I went from junior to medior. You seriously must watch his videos if you're serious about a career with React.

  • @Website_TV_1
    @Website_TV_1 2 месяца назад

    This React State Management tutorial is a game-changer for anyone looking to level up their JavaScript skills! The explanations are clear, and the examples make even complex concepts easy to understand. I love how you break down state management techniques like useState, useReducer, and Context API. Definitely recommending this to anyone serious about mastering React! Keep up the amazing work!

  • @studyingasyouwere
    @studyingasyouwere 2 года назад +14

    I learnt HTML and CSS from your channel from scratch and now I am posting my own web dev content! Thank you for your work :)

  • @CèliaCasanovas
    @CèliaCasanovas 4 месяца назад

    I'm amazed at how good Jack Herrington is at teaching you in a surprising amount of detail how React hooks work, in just about one hour and a half (the rest of the video is about state management libraries). Props to him and freeCodeCamp.

  • @Eddie4k
    @Eddie4k 2 года назад +12

    This is seriously such a great instructor!

  • @Eyezbergslim
    @Eyezbergslim Год назад +1

    This was one of the most comprehensive tutorials I've watched,. I really like how you gave examples of why the state doesn't change when discussing useState.

  • @nikolakikanovic9740
    @nikolakikanovic9740 2 года назад +81

    Jack is actually one of few rare guys that covers and teaches you intermediate topics about react/next and typescript on his channel.
    One thing that I also like for him is that he with all that knowledge, you hear from the voice that he is still on to ground without any ego-trips, he is there to only teach you and transfer a knowledge.
    Good job Sensei!

  • @EndiOdobasic
    @EndiOdobasic Год назад +1

    wow, this is actually super important and it was so hard to actually find something that covers these concepts so well. thank you!

  • @usmanmalik-xk5vi
    @usmanmalik-xk5vi 6 месяцев назад

    Awesome resource man, Thank you for not just explaining how state management works but how the underlying data structure is handled by JS for example by reference and by value.

  • @tjdgmlchl6305
    @tjdgmlchl6305 Год назад +1

    Best tutorial. This is so helpful. Words cannot explain how grateful I am to have access to invaluable educational material like this.

  • @r-i-ch
    @r-i-ch 2 года назад +3

    Jack is maybe the best intermediate content creator. Glad to see him here!

  • @vosyasabesquien
    @vosyasabesquien 3 месяца назад

    what a great masterclass. definitely a must-watch video for all the people learning react. because of the level of detail and the clarity in jack's explanation

  • @ChristopherBrown-bj4zl
    @ChristopherBrown-bj4zl 5 месяцев назад

    Alright... 7 minutes in and I can already tell this is a good video. So many "tutorials" gloss over the nuances of lines of code and this tutorial doesn't. This tutorial also goes a step further by showing code that you would think would work, but actually doesn't and explains why. For me, I need this. I need to know why something is happening, because under-the-hood/behind-the-scenes magic never works for me in the long run.

  • @AmirRazavi98
    @AmirRazavi98 Год назад +1

    Jack, You are AWESOME!!!! I think this tutorial was by far better than other react and state management's videos I've seen so far. Thanks for sharing your incredible knowledge.

    • @lukas.webdev
      @lukas.webdev Год назад

      I just posted a video about the same topic (in 2023) - maybe this could be interesting for you as well. 😉

  • @sriramgudupuru1664
    @sriramgudupuru1664 Год назад +1

    I did a hit on like button, when i was at 17:11 ( setLIst( [...list, name ] ) ). Thank you so much master, for this vauable source

  • @HammadUrRehman-gy9vs
    @HammadUrRehman-gy9vs Год назад +5

    Great course, Just one correction In useRef section if we do "useState([{id: idRef.current++ , name:"john"} , {id: idRef.current++, name: "Jane"} ])" then upon every re-render idRef value gets updated two times, that maybe because of the development mode which follows "mount unmount and then again mount lifecycle". Note: "On second entry you will get the id 8 instead of 4"

    • @mazharansari7813
      @mazharansari7813 Год назад

      Thanks bro I was thinking about this

    • @kharadinbrahman
      @kharadinbrahman Год назад

      just found that out yesterday and commented. one better just set the numbers in the useState initial values.

  • @Alysia.in.Wonderland
    @Alysia.in.Wonderland 4 месяца назад

    I absolutely love Jack’s teaching style 🥇🙌

  • @jigneshpatel8975
    @jigneshpatel8975 Год назад

    It's Incredible! Got the actual understanding of state management from this. Kudos to Jack!

  • @krobi26
    @krobi26 Год назад

    I've been using React for about a year and a half, but I think I got 50% better at React by just watching this course.

  • @thwackspongbelm
    @thwackspongbelm 11 месяцев назад

    Highly instructive, thank you. 18 minutes in, I can't wait to watch the rest

  • @eliuddyn
    @eliuddyn 2 года назад +2

    Jack is the best talking about React and Next 🔥🔥

  • @hhao0011
    @hhao0011 2 года назад +3

    easily the best react video and the best teacher. thank you for doing this !

  • @eleah2665
    @eleah2665 2 года назад +6

    Jack is great. Do whatever he tells you to do. You will thank him later.

  • @developerpranav
    @developerpranav Год назад

    This might be the last state management video one needs to watch for a long time, until they hit any limitations (which I dont think they will for a long time!)

  • @kharadinbrahman
    @kharadinbrahman Год назад +3

    1:13:36 Jack, it gives an error as it is, useRef: it runs ok with values like 1, 2, 3... but then it comes obvious that the ++ increments in the useState are fired every time and the count increases by 5, if in strict mode, or by 3, if you comment out 'strict' mode., so what one can do is to assign numbers: id 1 and id 2 for John and Jane, and start the count with 3. (or 2 and pre-increment the id)

    • @herreranicoo25
      @herreranicoo25 Год назад

      Thanks for this!

    • @amithanilgeorge4956
      @amithanilgeorge4956 10 месяцев назад

      Thanks for this,but i don't understand reason behind this ,is it because setting useState which lead to render this it results in increamenting refId more times?

  • @federicamariani3294
    @federicamariani3294 2 года назад +1

    Jack is a monument and I'm so glad to see him here on FCC ❤

  • @gogaimerlishvili4542
    @gogaimerlishvili4542 2 года назад +2

    Thank you very much for this course, I think you explain the best among the lecturers.

  • @StudyNerd-t4c
    @StudyNerd-t4c Год назад

    I have been learning react since months but this video just hit different! Jack is so amazing! Only after watching this video did I truly understood stage management!

  • @juanmamani2110
    @juanmamani2110 7 месяцев назад

    best 2:46 of the day! thanks for sharing!

  • @JoelByrd1
    @JoelByrd1 25 дней назад

    I'm half way through and for the most part, really good teaching and insights. The useContext part I think was kind of all over the place, hard to follow.

  • @tomarapetty
    @tomarapetty 2 года назад +1

    This is a really great mini course. Loved it! I went and followed Jack's channel as well! Thanks for putting this together.

  • @stavroskefaleas6320
    @stavroskefaleas6320 Год назад +2

    Awesome tutorial.
    The only thing missing of the useState video is the classic example with 3 consecutive setCount functions that add 1 but the user get 1 again as a result.
    Then you teach about previous state!

  • @ak-loz
    @ak-loz 2 года назад +1

    I'm interested to know how to create this with TypeScript.
    Excellent tutorial.
    I will spend the next couple of days to build alongside.

  • @umair.ramzan
    @umair.ramzan 2 года назад +1

    Thanks for this, it's really worth the time I have put into it.

  • @snoussihamza2345
    @snoussihamza2345 2 года назад +3

    A master piece!! The vscode configurations is from another planet 🤯 Can you share please

  • @santanu29
    @santanu29 2 года назад +2

    Next make a Advanced React course. it will help me greatly in my job. Thank you for all the awesome content.

  • @abzzz-y7o
    @abzzz-y7o 4 месяца назад

    no words can describe my appreciation

  • @bikerd12
    @bikerd12 Год назад +1

    Fantastic tutorial!! Thank you.

  • @andreiKspb
    @andreiKspb Год назад

    Best of the Best, ty Mr.Herrington a lot. You are really awesome

  • @vivekkumar-pc1xy
    @vivekkumar-pc1xy Год назад

    you are the master of javascript

  • @martinsolheim6202
    @martinsolheim6202 Год назад +1

    Loved the squirrel raiding the bird feeder in the start of the video 😂

  • @mks5988
    @mks5988 2 года назад +2

    your always great ,right time providing right course for the subscriber .thanks for the educator

  • @Bookwala12
    @Bookwala12 2 года назад +1

    I already know this will be epic..

  • @manfrombritain6816
    @manfrombritain6816 Год назад

    this is absolute gold

  • @kim92se64
    @kim92se64 Год назад +1

    45 minutes watched BTW what a great Tutorial !!! awesome

  • @thatbackbenchdude
    @thatbackbenchdude Месяц назад

    52:39 This man is so good at teaching....

  • @totallypointlessvideos3832
    @totallypointlessvideos3832 Год назад

    This is really and awesome video. Many thanks for this!

  • @arghyasaha7259
    @arghyasaha7259 Год назад +2

    Thank you sir. Your useEffect video was very informative. i learned the why along with the how

  • @husainahmadali8323
    @husainahmadali8323 2 года назад +1

    Best instructor

  • @User-w8t4t
    @User-w8t4t 2 года назад +1

    Masterpiece!

  • @learnfronteasy9642
    @learnfronteasy9642 Год назад +1

    Hi, Thank you for your awesome video....what is your extension to complete code in react

  • @nodeSkin
    @nodeSkin Год назад

    This man is just amazing !!!

  • @chhavimanichoubey9437
    @chhavimanichoubey9437 Год назад

    Pass by value vs pass by reference in terms of state, no one ever mentioned this in any video or blog tutorial I saw in my whole life.

  • @codematics8344
    @codematics8344 2 года назад +1

    this is really well explained. thank you

  • @jpmitchell925
    @jpmitchell925 Год назад

    This is actually gold

  • @syedhaider0916
    @syedhaider0916 Год назад +4

    Will keep this video for future reference. Thank you freecodecamp and jack. I just wish recoil was part of this video.

    • @jherr
      @jherr Год назад +1

      Jotai is, and that is very close and IMHO better.

    • @syedhaider0916
      @syedhaider0916 Год назад

      @@jherrsir if you vouch for it, I will definitely definitely look into it.

  • @ota-ke
    @ota-ke Год назад

    High quality intermediate to advanced React contect

  • @john-dolaspassiveincomestr9144

    My eye just pop open. Jack thanks

  • @prasad_yt
    @prasad_yt Год назад +1

    Great refresher , Yet learnt some new things.

  • @anasouardini
    @anasouardini 2 года назад

    you always surprise me with the super white bg.

  • @KoussaiKareem
    @KoussaiKareem Месяц назад +1

    thanks for this great video but i wanna ask what is the name of the compiler that he is using and is it free?

  • @nosrehcorporation
    @nosrehcorporation 6 месяцев назад

    Nice tutorrial, my only question is why Arcanine is not the first as it starts with A?

  • @adeleke5140
    @adeleke5140 2 года назад +1

    Jack, please what's your font and your VSCode theme?
    thank you for the amazing tutorial

  • @sumairimtiaz4545
    @sumairimtiaz4545 2 года назад +2

    Solution Error: you will face an error in the last part i.e. Redux and the error will be:
    Uncaught Error: Warning: Middleware for RTK-Query API at reducerPath "pokemonApi" has not been added to the store.
    You must add the middleware for RTK-Query to function correctly!
    Solution:
    export const store = configureStore({
    reducer: {
    search: searchSlice.reducer,
    pokemonApi: pokemonApi.reducer
    },
    middleware: (getDefaultMiddleware) => getDefaultMiddleware().concat(pokemonApi.middleware)
    });
    ====== The End ========

  • @AurelianoShowsTheWorld
    @AurelianoShowsTheWorld Год назад

    Thank you, that's a very nice video!

  • @dhanviakash726
    @dhanviakash726 2 года назад +1

    Just after watching 15 mins, my mind be like 🤯😮‍💨 (how a man can make us to understand something into this level)

    • @dhanviakash726
      @dhanviakash726 2 года назад +1

      @AKSHAY sorry I didn't get you..
      As well as I am from south India, so I didn't understand Hindi in code with harry videos

    • @dhanviakash726
      @dhanviakash726 2 года назад

      @AKSHAY hey by the way, do you know any best react native course.. 😁

  • @ThunderSlav
    @ThunderSlav 2 года назад +1

    Cca 17:30
    Why not using the "prevState" for updating the array?

  • @birandkoray
    @birandkoray 2 года назад +245

    Donald Trump is back to "Make React State Management Great Again"

  • @Svish_
    @Svish_ 2 года назад

    I wish people would stop saying objects and arrays are passed by reference in JS. They are passed by value, just like all other kinds of values. The value passed for an object and an array is the reference/address to the object, but it's still passed as a value, and you cannot modify that value. You can modify the fields of an object, and you can push items to an array, but you can't modify the reference to the object itself. You can only overwrite the value with a different value, just like you do with numbers and strings. You can easily test this by trying to implement a `swap(a: T, b: T): void` function. It's impossible to do in JS, even if you pass in two objects or arrays. Why? Because objects and arrays are in fact passed by value, not by reference.

  • @arthurfedotiew3609
    @arthurfedotiew3609 Год назад +1

    Jack is awesome, very knowledgeable and insightful! Nevertheless, I got a few questions:
    1. Example with Pokemon context used setSearch function inside a hook. Isn't it a good way to move such functions outside of a hook, changing its signature to expect dispatch as a parameter? As a benefit of this approach you'd make setSearch treeshakable, and wouldn't ship dead code in case a consumer doesn't even need it.
    2. Regarding the zustand example... Your setAllPokemon function derives new state based on search criteria and a list of pokemons. The question is why do you prefer keep derived state in a store, and call filtering-sorting function two times in a store, instead of inversion the responsibility to filter sort pokemons IF it is needed to the consumer of the store. As far as I understand you could provide a selector for this purpose, aren't you? (i'm not sure since I haven't used zustand and frankly rarely use react). Btw this separation of concerns is what I liked when you showed vatio.
    3. This one is more of a wish than of a question) I would really love to see you explaining the example with simple rxjs state management approach. I guess it would be kinda in a family of atomic state management, but light light weight, isn't it?
    And I also wondering about having a good analysis of pros and cons of those state managers compared to each other)

  • @vanshgupta2763
    @vanshgupta2763 Год назад +1

    Hey Jack !
    Awesome video man. Clear all the fundamentals in one shot. Can you let me know what VS Code extension you are using, that seems to be doing wonders as well.

    • @nikhilranka9660
      @nikhilranka9660 Год назад

      Quokka.js is the one you are amazed by I guess. Or possibly, console-ninja

    • @Ujedkemal
      @Ujedkemal Год назад

      did you get the answer dude? let me know if you did.

    • @raafihilmi
      @raafihilmi Год назад

      for auto complete? I think its Tabnine extensions

    • @raafihilmi
      @raafihilmi Год назад

      @@Ujedkemal for auto complete? I think its Tabnine extensions

  • @sumairimtiaz4545
    @sumairimtiaz4545 2 года назад +1

    Superb course

  • @ryan17stehle
    @ryan17stehle Год назад +1

    Can someone explain to me what Jack does around the 31 minute mark with the {...state, ...action}. I understand the spread operator syntax, I just can't wrap my head around how this works with a more complex state. Like if I had an array of people with first & last name, how would this shortened reducer function know which values to change? I've spent an hour+ trying to work this out.

  • @spongebob93lover
    @spongebob93lover Год назад

    would love to see a tutorial about swr in terms of state management, and maybe compare it to react query

  • @continuelearner4200
    @continuelearner4200 Год назад

    Awesome.. Tutorial Jack... purely delighted... Thank you so much!!! Do you mind telling me what is the theme that you used in visual studio code... really liked it and how all keywords are italic... please help me on this

  • @spikezkid022
    @spikezkid022 2 года назад +4

    You know it's going to be a good React tutorial when the instructor doesn't use CRA

  • @AkshayMagrani
    @AkshayMagrani 10 месяцев назад

    Mr. Herrington, There is a bug in useRef() portion, during the last implementation on names = [{id: idRef.current++, name: 'Jack'}, {id: idRef.current++, name: 'Jill'}]. After the first render, when you click the button -> id: 3, name value will be added to names, which will cause a re-render but idRef maintains its previous value which was 3, which causes the idRef value to increment to 5 due to two idRef.current++ in the definition of names useState variable (but the 'names' state variable cannot take the incremented values outside of setNames setter function), so when the next time a button is clicked, {id: 5, name: whatever-i-input} is added and so on. I went to other sites to solve the issue, using the length of the names[] is suggested as the next best option for the id value but you will have to use the preincrement operator to run. Let me know if I am blowing hot air, I am fairly new to React and cannot compare with your expertise in the subject matter.

    • @Drayken
      @Drayken 6 месяцев назад

      Ran into the same problem. I just settled with setting IDs to names.length + 1.

  • @tanglesites
    @tanglesites 4 месяца назад

    So I was playing around with this application: And I realized something about state in React. It will eventually all become one big ball of crap sooner or later. This application has two features: Search Feature, and Pokemon Showcase Feature. But architect them into slices is not possible. If I wanted to take the Showcase Feature and add it to another application, the search box feature would have to come along for the ride. Because they are coupled in the reducer. And without the reducer, there is no way to get the list to "react" when the input field is changed without again coupling two components together with state. Polymorphism is out the window. I am new to React, but not to programming. is the answer HOC. Thoughts?

  • @Ujedkemal
    @Ujedkemal Год назад +1

    whats the extension he used? like when we want to type onClick function, the extension could show up the recomendation tag and symbol for typing the function.

  • @BudetSvobodnoy
    @BudetSvobodnoy 5 месяцев назад

    on 28:35 wouldn't it be better to use forEach instead of map? Since map creates a new array which is not necessary here

  • @mohammadmangelie5059
    @mohammadmangelie5059 Год назад +1

    is nice tutorial
    What is the name of Extensions VsCode?...
    is very good Extensions I need then

  • @wahajahmed2823
    @wahajahmed2823 8 месяцев назад

    One of the greate video. 🤩🤩

  • @gilberttorchon1280
    @gilberttorchon1280 Год назад

    Excellent teacher!!!!

  • @nicolafontana6376
    @nicolafontana6376 Год назад +1

    awesome video, does anyone knows what extension he uses for shortcuts in react (or more in general what do you guys would suggest?)

  • @treyrader
    @treyrader 2 года назад +1

    I am getting duplicate keys error in the useState segment. I wish he'd have explained the reason for introducing that prop rather than just add it as if serves seome necessary functionality. It breaks the app. Also, even after calling a blank string on setName, the input field still doesn't refresh.

  • @csabapadar9978
    @csabapadar9978 2 года назад +2

    "How coooool is thaaat?" :D

  • @pedros.7947
    @pedros.7947 Год назад

    1:41:51 - Where i last stopped

  • @fethisert5527
    @fethisert5527 10 месяцев назад

    useEffect clean up function work if copm unmount or dependencies array change

  • @dky_code
    @dky_code Год назад +1

    What extension are you using 😊??

  • @gabrielsantini2841
    @gabrielsantini2841 Год назад

    what nice place jack has to work, in the middle of the woods. I'd like have some place like that.

  • @johndoe-si2sp
    @johndoe-si2sp Год назад +1

    can you share what extensions your are using on vscode?

  • @mayowadaniel4504
    @mayowadaniel4504 5 месяцев назад

    Can we get the list of extension that Jack Herrington used

  • @bengorman1722
    @bengorman1722 11 месяцев назад

    Thanks for the great video Jack! Regarding useReducer, the current React 18 docs examples declare the reducer function *outside* the component body. Besides reusability, is there any reason to do it this way as opposed to declaring the reducer *inside* the component?

  • @christopherwilhoite7856
    @christopherwilhoite7856 Год назад

    Great vid!

  • @omarlaralima2459
    @omarlaralima2459 2 года назад +1

    Hello Jack. Thank you for your time and effort to help improve our skills. Question: I have modified your code slightly where I am importing an array of names instead of hard coding it in the components. I am running into a slight problem where I cannot add a coma and space between the names from the array. how can I add this minor detail? Thank you for your time!