All 12 useState & useEffect Mistakes Junior React Developers Still Make in 2024

แชร์
ฝัง
  • เผยแพร่เมื่อ 31 พ.ค. 2024
  • 👉 NEW React & Next.js Course: bytegrad.com/courses/professi...
    Hi, I'm Wesley. I'm a brand ambassador for Kinde (paid sponsorship).
    👉 Add auth to your app FAST: bit.ly/3QOe1Bh
    👉 NEW React & Next.js Course: bytegrad.com/courses/professi...
    👉 Professional JavaScript Course: bytegrad.com/courses/professi...
    👉 Professional CSS Course: bytegrad.com/courses/professi...
    👉 Discord: all my courses have a private Discord where I actively participate
    🔔 Email newsletter (BIG update soon): email.bytegrad.com
    ⏱️ Timestamps:
    0:00 Intro
    0:06 12/12 - State updates aren't immediate
    2:35 11/12 - Conditional rendering
    4:46 10/12 - Updating object state
    7:59 9/12 - 1 Object state instead of multiple smaller ones
    11:25 8/12 - Information can be derived from state / props
    14:32 7/12 - Primitives vs non-primitives
    19:05 6/12 - Initializing state with object
    22:12 5/12 - TypeScript mistakes
    27:19 4/12 - Not using custom hooks
    30:59 3/12 - Server & Client components
    33:08 2/12 - Stale closure
    38:42 1/12 - Fetching in useEffect
    #webdevelopment #programming #coding

ความคิดเห็น • 742

  • @seventyMinus1
    @seventyMinus1 8 หลายเดือนก่อน +99

    I am a self-taught frontend developer. I know many teachers who teach online, but trust me, the way you explain things is so easy to understand. To me, you are the best teacher. I can't thank you enough. If I had money, I would have definitely bought your courses. Anyways Thank you so much for giving us your valuable time, and I love you.

  • @bushbuddyplatypus
    @bushbuddyplatypus 4 หลายเดือนก่อน +27

    I am a grumpy and impatient senior dev who was soothed by your calm voice and clear explanations. Also learnt a few things. Thanks.

  • @Bukosaure
    @Bukosaure 9 หลายเดือนก่อน +325

    I am now quite experimented with React and already knew everything you covered in the video. But I still want to say that this video is pure bomb. The amount of useful information contained in it is quite impressive and really straight to the point. I would have love to have seen it about a year ago. :)

    • @ByteGrad
      @ByteGrad  9 หลายเดือนก่อน +11

      Haha thanks, appreciate it

    • @Endrit719
      @Endrit719 9 หลายเดือนก่อน +4

      same here, I just came to see the content but it's really helpful for the beginners, at some point I was making all these mistakes

    • @SSG_GAMING_000
      @SSG_GAMING_000 8 หลายเดือนก่อน

      @@Endrit719 Us bro us.

    • @aleksandrS3894
      @aleksandrS3894 5 หลายเดือนก่อน +1

      For me, as a backend developer it’s a pure gem. Everything I should keep in mind in a one video. So easy to refresh knowledge when I had to make some UI parts.

  • @theshahbazahmad
    @theshahbazahmad 9 หลายเดือนก่อน +132

    Brother you solved many of my doubts. You have no idea how helpful and important these kind of videos are for me. Keep making such videos. Full support mate!

    • @ByteGrad
      @ByteGrad  9 หลายเดือนก่อน +11

      Glad to hear that

    • @darklord9500
      @darklord9500 9 หลายเดือนก่อน +4

      @@ByteGrad Thank You Brother 🙏

  • @adamd0ggg2
    @adamd0ggg2 9 หลายเดือนก่อน +98

    I definitely prefer multiple returns. Most components end up with distinct states that make breaking it down into more declarative components easier to follow. This a personal choice I adopted from React Query tutorials.
    if(loading){
    return
    }
    if(error){
    return
    }
    return
    If you add a key to PostBody then React will identify each of those components as unique. That will eliminate the race condition and reduce the dependencies in the useEffect Array. Loved your explanation of the setInterval. I never quite understood the problem there.

    • @joseluisperez5137
      @joseluisperez5137 9 หลายเดือนก่อน +23

      I do multiple returns as well because if not, one return can become into a return hell, hard to read and follow

    • @pete531
      @pete531 8 หลายเดือนก่อน +4

      cant we just say:
      {loading ? : error ? : }

    • @shivambisht9009
      @shivambisht9009 8 หลายเดือนก่อน +16

      @@pete531 Yes, but that's not very readable and scalable.

    • @ImKeviin9
      @ImKeviin9 8 หลายเดือนก่อน +1

      I prefer that way too

    • @user-sw1wq8lh2w
      @user-sw1wq8lh2w 8 หลายเดือนก่อน

      ​@@pete531 most teams I've been on ban nested ternaries to avoid complication in logic that is already highly complex.

  • @ProgramWithErik
    @ProgramWithErik 9 หลายเดือนก่อน +12

    This is crazy how much you've blown up in the last month! I saw you've created nearly 400 videos in one year, getting 50-100 views per video until recently! It's really inspiring how you never gave up!

  • @oru8185
    @oru8185 6 หลายเดือนก่อน +3

    The first case actually helped me a lot! At my job I was fixing a bug and couldn't figure out why component state was behaving wierdly, tourns out it was the multiple setState (although not direct) calls in one useEffect that were the problem

  • @crizwiz489
    @crizwiz489 9 หลายเดือนก่อน +7

    I really love how direct and precise it is with handle certain react problems. Please do more of this format of videos.I learnt a lot and I appreciate you man. Keep it up

  • @alessandrospiridigliozzi7943
    @alessandrospiridigliozzi7943 7 หลายเดือนก่อน +3

    One of the best videos on React!!!! I've been working as a dev with react for over 1 year now and there were a lot of things in this video that I did not know! Most online courses never fully explain what happens underneath the hood, so thank you!!!

  • @rushboy1971
    @rushboy1971 7 หลายเดือนก่อน +6

    Absolutely fantastic video. As a kinda newbie to NextJS and REACT, I was happy that I'd figured out most of these on my own, but some of them (the object item name in brackets trick) will really help get my code leaner.

  • @prabhakaranj1218
    @prabhakaranj1218 3 วันที่ผ่านมา +1

    Wow bro. You nailed almost all those doubts i had ever in my react journey. You are a perfect teacher with the soothening voice which actually dragged me to listen to this 40mins lecture peacefully with no breaks.

  • @AveN7ers
    @AveN7ers 9 หลายเดือนก่อน +282

    Man after learning Solid and Svelte, I'm starting to find React to be so convoluted.

    • @DEVDerr
      @DEVDerr 9 หลายเดือนก่อน +67

      Because it always was. Even with better alternatives (Solid and Svelte as you've mentioned... and more), to this day so many React devs are living with a React copium

    • @gamevidzist
      @gamevidzist 9 หลายเดือนก่อน +5

      It is

    • @Angeal98
      @Angeal98 9 หลายเดือนก่อน +88

      ​@@DEVDerrit's not copium, I just want an existing ecosystem of packages. Component libraries, styling solutions, utility components, specific solutions libraries etc. They all exist for react and not svelte nor Solid

    • @ColossalMcBuzz
      @ColossalMcBuzz 9 หลายเดือนก่อน +210

      @@DEVDerr They aren't living with copium, they're living with jobs.

    • @Salantor
      @Salantor 9 หลายเดือนก่อน

      @@Angeal98 You can always search for general, not tied to frameworks solutions. Those exist and there is quite a lot of them.

  • @tomkatdev
    @tomkatdev 9 หลายเดือนก่อน +8

    A really great run through of correct patterns and component lifecycles mate, As someone who is 2 years into react, and 9 months or so into ts, I found this a really nice way to confirm my existing understanding, and clear up a few points I had only somewhat understood. Thanks for this :)

  • @personal3314
    @personal3314 9 หลายเดือนก่อน +13

    You somehow have managed to address every one of my concerns or gaps I believed I had in my knowledge across all your videos on react and Javascript. Thank you 🙏

    • @lukas.webdev
      @lukas.webdev 9 หลายเดือนก่อน

      That's awesome!

  • @raves_r3177
    @raves_r3177 หลายเดือนก่อน +1

    I am a self-learning newbie in React and you sir just made learning React a lot easier! Simple, straight to the point, no unnecessary stuff. The time I saved by watching this video instead of scouring the docs is priceless. Thank you very much.

  • @user-ov5wg9qd8h
    @user-ov5wg9qd8h 4 หลายเดือนก่อน +2

    이야 강의가 너무 기가 막혀요🥰👍 궁금했던 부분을 시원하게 긁어주는 기분이네요 감사합니당

  • @codefrite
    @codefrite 9 หลายเดือนก่อน +15

    Incredibly dense content full of nice tricks, best practices and clear concepts explanations. It felt like learning "the right way" of coding things in modern JS. This is the first video I watch from you and it made me buy your Udemy JS course. I'll be spending the day watching it. Looking forward for a TS course :) Cheers from Belgium !

    • @romaneaugustin2462
      @romaneaugustin2462 6 หลายเดือนก่อน +1

      Thx for the comment. I should look for his course online. I always study javascript with Stephen Grider; thought he was the top dog.

  • @aadispare3673
    @aadispare3673 6 หลายเดือนก่อน +1

    The best thing happened to me in recent times is your video popping up on my youtube homepage suggestions.
    So much clarity and valuable information.
    Subscribed and will surely recommend your channel to every React dev in my circle

  • @hskdjs
    @hskdjs หลายเดือนก่อน +1

    38:34 If you leave it as is, your "setInterval" would never be canceled until you close or reload the page. If you call setInterval or setTimeout inside useEffect, always destroy that interval / timeout.

  • @elidonmorina
    @elidonmorina 8 หลายเดือนก่อน +2

    Great one! Straight to the point, typical and practical life examples! Keep it up and the volume a bit up for the future videos haha

  • @Namespace_Manny
    @Namespace_Manny 9 หลายเดือนก่อน +5

    I just got through a week of useState and useEffect, and this video helped answer a lot of questions. Keep it up man!

  • @Lalit-yw2tb
    @Lalit-yw2tb 8 หลายเดือนก่อน +2

    I learnt all these things by trial and error while using react in my project. This is such a brilliant video that is going to help any new developer starting with react/nextjs to avoid the pitfalls.
    This video is jampacked with information. Such an amazing channel.

  • @RoyiaiHackersChristo
    @RoyiaiHackersChristo 9 หลายเดือนก่อน +2

    Amazing. I made all of these mistakes when I started with React some years ago. Hope every React beginner's can watch this.

  • @Larriisama
    @Larriisama 2 หลายเดือนก่อน +1

    This was really helpful, I recognize a few mistakes I've done and though I've worked around the errors, your explanations gave me a better understanding to why I saw errors or such. Really cool vid and most of all thanks for sharing. I've just recently gotten serious about next.js but before that I used to fetch data in a useEffect much like you said

  • @asztonselecta965
    @asztonselecta965 6 หลายเดือนก่อน +1

    Thank you so much. I love the way you teaching. I working as a junior react developer for 2 years already, but still this video helps me a lot. Great job

  • @positronalpha
    @positronalpha 6 หลายเดือนก่อน +39

    I've been developing JS for 25 years, so I'm not really making the mistakes you list, but I'm only two weeks into React and this was a great crash course on its basic mechanisms. Between the lines, you managed to make it much more clear than the horrible hand-wavy official documentation which reads like it was written by people who don't know the basics of the language.

    • @IgorYatskiv
      @IgorYatskiv 5 หลายเดือนก่อน

      Do you like hooks overall? I'm around 15 years into JS development. But I hate functional programming with all that half/solutions. Why would anyone prefer functions over better structured, more clean classes (long awaited) syntax and OOP approach in general? 🤷‍♂

    • @rayaqin
      @rayaqin 5 หลายเดือนก่อน

      @@IgorYatskiv I started React development when hooks were not yet available, and I like this new functional approach much more. I very rarely have to resort to creating any classes in very special cases.

    • @positronalpha
      @positronalpha 5 หลายเดือนก่อน

      The way I see it, classes in JavaScript and TypeScript are a less-than-useful hack that don't work in any way like I'd expect. For me, the simplicity of prototypal inheritance, functions and closures are the beautiful bits of the language. That said, I think the state of the JS/TS ecosystem is really sad and avoid it whenever possible, even though I love writing JavaScript.

  • @Grozny446
    @Grozny446 5 หลายเดือนก่อน +1

    thanks a lot, useful video. i'm not a begginer but often i don't think about to do some more cleaner if it works. you have fixed my mind

  • @snakesoul
    @snakesoul 9 หลายเดือนก่อน +3

    As a learning developer, I run across hundreds of baity videos, but this one was really useful

  • @ecodersofficial
    @ecodersofficial หลายเดือนก่อน +1

    I already knew that we can use one big useState but I had likely forgot it and still used multiples. Thanks for telling these!

  • @bennzeppelin
    @bennzeppelin 6 หลายเดือนก่อน +2

    Nice touch flipping the video as you move from editor to console 😄
    Very helpful vids thx

  • @mikro_rimoslav
    @mikro_rimoslav 3 หลายเดือนก่อน

    11/12 - If you still need to call hooks only if a certain condition is met (like on 03:24), which is often the case in practice, you can:
    1) return "No id provided" if there's no id
    2) copy and paste the code between the lines 6 and 11 into a separate component in which you call those hooks indiscriminately.
    3) return that component instead of lines 6-11.

  • @RalfSchlindwein0
    @RalfSchlindwein0 9 หลายเดือนก่อน +2

    As a rookie reactjs developer i skipped many fundamentals and jumped straight to the code. Now i see how such concepts was important. thx for your time doing such a helpful video.

  • @goodtimeswerehad
    @goodtimeswerehad 5 หลายเดือนก่อน +1

    Fantastic video! First one of yours I've come across (thanks TH-cam). I'm now a subscriber

  • @phucnguyen0110
    @phucnguyen0110 9 หลายเดือนก่อน +5

    I gotta thank the algorithm for recommending me this video, Wesley! You solved so many things that I was curious in the past! And with Udemy having a big sales event atm I might just grab both of your CSS + JS courses!

    • @Digitalknifeparty
      @Digitalknifeparty 8 หลายเดือนก่อน

      Likewise. Video has been helpful. I have several years of experience with JS, CSS, HTML, etc, but only been using React for 6 months or so. Just learned about using Vite over CRA the other day 😅 Hopefully I can land a React job soon!

  • @siddharthjoshi3328
    @siddharthjoshi3328 8 หลายเดือนก่อน +1

    Saw this video, loved your straight to the point style and even bought your JS course for the projects it covers. Thanks

  • @fuadagil
    @fuadagil 6 วันที่ผ่านมา +1

    I am about to learn react in typescript, and really appreciate your video. It really helps me understand about react hooks and how to do it properly. Hope your days will be great, thank you

  • @ansonwoohk1984
    @ansonwoohk1984 8 หลายเดือนก่อน +1

    Thanks! Great for me as a new React Developer from Angular

  • @lucasa8710
    @lucasa8710 8 หลายเดือนก่อน +1

    quick counter point on the 8:01 topic, using a single object to store the state of all the inputs will produce a lot of objects, the garbage collector will run more times and the component will update all the inputs that depend on the `useState` which can, some times, reduce performance significantly. By using separate states your component will update way less and create less objects and use less garbage collection cicles

  • @TheCodeHunter
    @TheCodeHunter 3 หลายเดือนก่อน +1

    as a junior dev, this video certainly helped me solve a lot of issues I had with my code, thank you!

  • @levantos
    @levantos 9 หลายเดือนก่อน +4

    Amazing video, watching it from start to finish. Loved it. A React Context and prop drilling best practices would be be amazing as well

  • @pradneyaprabhudesai243
    @pradneyaprabhudesai243 6 หลายเดือนก่อน +12

    As a beginner in React , I can confidently say that this video is a must watch

  • @mikeh8498
    @mikeh8498 9 หลายเดือนก่อน +2

    Great video. These quick reminders are very helpful! Especially because you often see multiple ways of doing the same thing but no one explains why it works.

  • @count_of_pizza
    @count_of_pizza 9 หลายเดือนก่อน +2

    Not only Junior React developers but also mids, so called seniors and all kind of full-stacks who have no idea about JS. Fantastic video :)

  • @KeshavAneja
    @KeshavAneja 4 หลายเดือนก่อน +1

    Thank you so much for this amazing video!

  • @jennisonb37
    @jennisonb37 8 หลายเดือนก่อน +1

    I have just started learning react and this video was extremely helpful. It's super clear and understandable. Thank you.

  • @felipegmarcal
    @felipegmarcal 8 วันที่ผ่านมา +1

    this is pure gold, thanks a lot!

  • @timkoprivnik9875
    @timkoprivnik9875 6 หลายเดือนก่อน +1

    really, really good explanation of everything! thanks a lot for that video. would love to see more.

  • @BrunoSilva-vw4uo
    @BrunoSilva-vw4uo 7 หลายเดือนก่อน +1

    The video is totally necessary! Good job dude!

  • @indrajitadhikary6989
    @indrajitadhikary6989 7 หลายเดือนก่อน +1

    With this video I lerned more in an hour than what I learned in one and a half day searching. Thanks!

  • @AlekVila
    @AlekVila 3 วันที่ผ่านมา +1

    As others have said you are a fantastic teacher. Please make a course on Qwik. We need a voice like yours.

  • @unknownChungus
    @unknownChungus 9 หลายเดือนก่อน +4

    Last tip is good but abort controller will not abort calls on the api side which can further stress the api server in some cases.

  • @aviaduvdevan
    @aviaduvdevan 5 หลายเดือนก่อน +1

    Great video! You really take the time to explain everything and you do it very well

  • @Adventures_English
    @Adventures_English 7 หลายเดือนก่อน +1

    I watched all the other TH-camrs and their covering of these similar topics. You by far do it the best!

  • @ruxinqu871
    @ruxinqu871 29 วันที่ผ่านมา +1

    learned so much! thank you for the video!

  • @dandheedge
    @dandheedge 7 หลายเดือนก่อน +1

    It's always so good to get a basic understanding like this!

  • @luciopereirabrito3154
    @luciopereirabrito3154 8 หลายเดือนก่อน +1

    That's amazing thank you a lot for this video!

  • @Furki4_4
    @Furki4_4 6 หลายเดือนก่อน +2

    Thanks for the video, really helped me a lot ! Especially the 12/12 helped me to understand why my states weren't getting updated xD
    4/12 - I always try to avoid duplication in my code however, I obey the Rule of Three of "Rules of Thumb" as well. If the logic isn't too long and/or complicated, I might tend to duplicate it instead of abstracting it until the third duplication.
    2/12 - not cleaning the interval causes incrementing the count by 2 on my side.

    • @ByteGrad
      @ByteGrad  6 หลายเดือนก่อน +1

      Thanks, appreciate it!

  • @Iza90bela
    @Iza90bela 8 หลายเดือนก่อน +1

    and just when i say i grasped react here bytegrad comes to drop new knowledge , thank you sir again i learned css and js from you ! now i cant wait for your nextjs course i was planning to learn it in the future. you really changing my life :,)

  • @bikukist5
    @bikukist5 3 หลายเดือนก่อน +1

    Thank you for the insights. You clarified my doubts with this video with mistakes that I overlook those features sometimes even I work on them. Thank you for helping out to everyone sharing your knowledge in react and other tech stack.

  • @deebo5284
    @deebo5284 7 หลายเดือนก่อน +1

    Been a while since I touched React, and when I did try it out, I just did a few small projects. It was a good intro, but I feel like I retained little. But watching this was so much fun. I'm excited to try it again soon!

  • @rubenramirezdev
    @rubenramirezdev 7 หลายเดือนก่อน +1

    Thank you for this video. #9 really helped me out!

  • @omaribbrahim
    @omaribbrahim 9 หลายเดือนก่อน +1

    This video is amazing! Kudos. It warms my heart that I am still an intern and all of this is basically muscle memory at this point.

  • @luizeduardo8545
    @luizeduardo8545 หลายเดือนก่อน +1

    Nice video, I'm on my first big React project and your video helps me a lot, thank you very much!

  • @ShanaSkydancer
    @ShanaSkydancer 4 หลายเดือนก่อน

    Great video! I love the way you teach!
    Thank you for all the effort you put into this! 🙂

  • @john_dren
    @john_dren 9 หลายเดือนก่อน +1

    I finally understood the relevance of the spread ... operator with your real world example. Thanks to you

  • @bilmoleque2
    @bilmoleque2 9 หลายเดือนก่อน +8

    The fact that I could guess every solution as soon as you started presenting the problem really makes me happy of my evolution as a react developer.

    • @lukas.webdev
      @lukas.webdev 9 หลายเดือนก่อน

      Congrats buddy! 😉

    • @aimifirdhausshafie9976
      @aimifirdhausshafie9976 9 หลายเดือนก่อน

      me too, I can't believe my self either..

  • @albertgouws13
    @albertgouws13 7 หลายเดือนก่อน +1

    Great video especially the pace at what you presented. It was 👌No time wasting and just kept going.

  • @krvns
    @krvns 6 หลายเดือนก่อน +1

    This is 46 minutes of pure gold! Thank you!

  • @adnanniaz77
    @adnanniaz77 9 หลายเดือนก่อน +1

    Amazing content and the way of explanation (smooth and calm). Keep it up, would love to see more on React/TypeScript and probably Jest in the future :)

  • @wilhelmburger9588
    @wilhelmburger9588 14 วันที่ผ่านมา +1

    This is an amazing video, thank you dude.

  • @anuragnair5672
    @anuragnair5672 9 หลายเดือนก่อน +1

    Not just junior’s , it was really helpfull for me as a senior dev. Subscribed❤️

  • @puopg
    @puopg 9 หลายเดือนก่อน +20

    For the last one, tbh I would just use a debounce with no leading trigger. Since then no network call goes out and only fires once you’ve “settled”
    This way you never hammer ur server until the user has essentially stopped

    • @tek9ine130
      @tek9ine130 9 หลายเดือนก่อน +1

      Can you elaborate a bit on how you would achieve that in Nextjs?

    • @puopg
      @puopg 9 หลายเดือนก่อน

      Errr, this isn’t a framework thing, just javascript.
      Say you just use lodash.debounce, it would basically just be
      Const myDebouncedFn = _.debounce(myFn, 250, { leading: false });
      And then just swap the method out in this case for the video

    • @codemonkeybusiness
      @codemonkeybusiness 9 หลายเดือนก่อน +2

      My thoughts exactly. Either that or disable the button while the HTTP call is running

  • @user-zo5wp3su8y
    @user-zo5wp3su8y หลายเดือนก่อน +1

    Great Explanation. Thanks!!!

  • @gabrieldonnantuoni
    @gabrieldonnantuoni 8 หลายเดือนก่อน +2

    Nice video! But I'd like to correct the 3/12 mistake. It's not the component that imports that can be turned into a client component, if so all the tree would be turned into it if you had a client component on the leaf of the tree. Actually, the one being imported that can change. So if you have a client component and import a server component into it... that server component will be turned into a client component.

  • @osamaxz5720
    @osamaxz5720 3 หลายเดือนก่อน +1

    thanks so much for sharing this info for free because I never saw a free course giving like this useful info. You are from the rare people man ❤

  • @dsyph3r
    @dsyph3r 3 หลายเดือนก่อน

    Excellent video. For the stale enclosure section, you should still have the clean up function for the setTimeout even if you are using the setCount((current) => count +1) method. The interval needs to be cleaned up when the component is unmounted.

  • @victorsaisse1340
    @victorsaisse1340 9 หลายเดือนก่อน +2

    I new all of them except for the last one, amazing!

  • @damianmussi3205
    @damianmussi3205 6 วันที่ผ่านมา

    Hey! thanks for the video. I would create an inner component that handle the hooks instead of execute hooks if the ID was missing... Also I won't use an object in the form, since I don't need those extra renders, instead you can use a ref (useRef) to prevent re-render the component N times. Adding the signal to the fetch is ok but you still will call the API N times, instead you can use useEffect with an isFetching variable or loading or whatever you want... and prevent those API calls.

  • @anoopisaac
    @anoopisaac 8 หลายเดือนก่อน +4

    Great content, good insight into how react works and simplify coding. But not sure about the stale closure you explained. I think setInterval still has reference the 'count' variable and it gets value out the count variable using lexical context but issue here is when the component is rendered, reactjs discards previous 'count' variable which still holds 0 and creates a new one while the 'setinterval' still refers to the old one.

    • @aadispare3673
      @aadispare3673 6 หลายเดือนก่อน

      The interval was created at the time of mounting of the component, when the count was 0.
      Since it wasn't cleared in the first example, it lived in the context with lexical access to count=0.
      The count changed on every render, but interval wasn't destroyed/recreated to have access to the latest count value.

  • @lucas.codes.tutorials
    @lucas.codes.tutorials 9 หลายเดือนก่อน +3

    Very well explained as always :) I am starting a position as a jr. dev now in September and this video was such a great review of React concepts. I have one comment about the chapter "Primitives vs non-primitives": when we need to run useEffect whenever one of the attributes of the object change, one thing that we can do is put [JSON.stringify(object)] on the useEffect dependencies. That will convert the object into a string (primitive) and then any changes in the object would change the value of this string, triggering the useEffect to run!

    • @ByteGrad
      @ByteGrad  9 หลายเดือนก่อน +1

      Yep, that’s a nice trick. Could have some performance issues with large objects

    • @sincethatmoment
      @sincethatmoment 9 หลายเดือนก่อน +2

      feels hacky. just list out individual properties using obj.attribute. Chances are, you don't really care about the updates of all of the object properties. I could be wrong though

    • @lucas.codes.tutorials
      @lucas.codes.tutorials 9 หลายเดือนก่อน

      @@sincethatmoment I think it really depends on the behavior you want for your component

  • @amir7440
    @amir7440 9 หลายเดือนก่อน +21

    A bit of advice, if you don't want to get stuck with stale states when you're updating your state based on the previous state, always use callback function instead of a raw value inside your updater function. Get used to it and this will save you a lot of time.

    • @AlexanderSuleymanovFX
      @AlexanderSuleymanovFX 8 หลายเดือนก่อน

      Thanks for the tip. Can you do a code example?

    • @orere1635
      @orere1635 8 หลายเดือนก่อน +6

      @@AlexanderSuleymanovFX I think what he means is the solution found in the video at: 38:23
      setCount((prev) => prev + 1)
      instead of setCount(count + 1)

    • @Adventures_English
      @Adventures_English 7 หลายเดือนก่อน

      @amir7440 to your knowledge are there other cases where not using a callback when setting state presents an issue? Or is this just limited to useEffect?

    • @amir7440
      @amir7440 7 หลายเดือนก่อน

      Stale state can happen anywhere, for instance, assume a situation where you have to update your state twice or more in one single handler function. In this situation you should use callback instead of a raw value, because you will not get access to the fresh state unless you use callback. Just keep in mind that we have a so called batching state updates in this particular situation where react will update all of our states in one go (in one render), so we have to enforce react to use the freshest value on each state update. As I mentioned in my first comment, when you want to update your state based on it's previous value, always use callback and you're good to go.

    • @AlexanderSuleymanovFX
      @AlexanderSuleymanovFX 7 หลายเดือนก่อน

      @@orere1635 Thank you!

  • @nstha8848
    @nstha8848 หลายเดือนก่อน +1

    17:00 best explanation

  • @simonaerts2926
    @simonaerts2926 9 หลายเดือนก่อน +2

    Nice video! Regarding the conditionnal rendering I would add to be careful with using it with numbers, for example: 0 && Hello will return the p tag, as it is not a falsy value for JS.

    • @amyrithe
      @amyrithe 9 หลายเดือนก่อน

      0 is falsy in js

  • @basmong
    @basmong 8 หลายเดือนก่อน +1

    I like that all the details are also discussed. Great video.

  • @maurov2104
    @maurov2104 9 หลายเดือนก่อน +15

    This video shows how counterintuitive React is!

  • @maherylala2153
    @maherylala2153 5 หลายเดือนก่อน

    21:55 You could also check if the post is null or not and use that to show if it's loading or not. Helpful video btw 👍

  • @Reydraenei
    @Reydraenei 8 หลายเดือนก่อน +1

    With one video you made me want to subscribe in a matter of seconds. Your voice and the way you are explaining and presenting it is pure satisfaction. Already subscribed everywhere!

  • @rin0422
    @rin0422 หลายเดือนก่อน +1

    Thank you so much. I learned a lot

  • @alexandergrigoryan3359
    @alexandergrigoryan3359 9 หลายเดือนก่อน +1

    this video is a pure gold for any React developer, junior and intermediate

  • @harukazeeh
    @harukazeeh 7 หลายเดือนก่อน +1

    glad I watched this video because I learned more things and I can use the form object state for the first React project I'm currently doing 😊

  • @eliaspaulinho8435
    @eliaspaulinho8435 9 หลายเดือนก่อน +1

    this explains a lot !!!!! i now understand!!!! thank you🙏

  • @razintailor
    @razintailor 8 หลายเดือนก่อน +1

    this content is really helpful. the nuances discussed are both detailed yet put in simple language. thanks alot

  • @_jovian
    @_jovian 9 หลายเดือนก่อน +1

    Great stuff but another one is having a loading state depend on the truthiness of data. If that fetch fails, that loading state will displaying for quite some time.

  • @jameskayihura1675
    @jameskayihura1675 5 หลายเดือนก่อน +1

    Thanks you very much, I ran through this situation

  • @user-qi2hv3rx6l
    @user-qi2hv3rx6l 2 หลายเดือนก่อน +1

    You’re simply the best ! Thank you 🎉

  • @whatskookin6429
    @whatskookin6429 3 หลายเดือนก่อน

    You explain it so good brother, thank you!

  • @christianstander5452
    @christianstander5452 9 หลายเดือนก่อน +1

    Wow this was super valuable. Thank you 🙏

  • @habercim
    @habercim 8 หลายเดือนก่อน +1

    After I watched this video, I purchased your 2 course. I liked your style. Thank you…

  • @gjcardonam
    @gjcardonam 2 หลายเดือนก่อน

    This ASMR React Class was amazing. Thanks!

  • @shafiemukhre
    @shafiemukhre 7 หลายเดือนก่อน +1

    really good, thank you for creating this! More contents for professional react developer