5 Pro-Level React Do's & Don'ts

SdĂ­let
VloĆŸit
  • čas pƙidĂĄn 1. 06. 2024
  • In this video, Jack will talk about some do's and don'ts when it comes to writing code with the React JavaScript framework.
    đŸ“œïž Jack's CZcams Channel:
    / jackherrington
    👇 Follow Traversy Media On Social Media:
    Twitter: / traversymedia
    Instagram: / traversymedia
    Linkedin: / bradtraversy
    Timestamps:
    00:00 Introduction
    00:30 Do use functional components
    02:22 Don’t think of function components as templates
    07:08 Do use TypeScript
    12:02 Don’t worry about re-renders (too much)
    14:35 Do learn to love dependency arrays
    18:36 Don’t ignore useCallback or useMemo
    22:25 Do learn to make custom hooks
    23:23 Don’t use Redux just because you think you have to
    26:00 Do use a query library
    27:50 Don’t make your own UI library
    29:29 Outroduction
  • Věda a technologie

Komentáƙe • 363

  • @TraversyMedia
    @TraversyMedia  Pƙed rokem +413

    I want to thank Jack for letting me post this amazing in-depth video to my channel.

    • @jherr
      @jherr Pƙed rokem +72

      I want to thank YOU for having me on!.

    • @jarrahello877
      @jarrahello877 Pƙed rokem +39

      I want to thank BOTH of you for sharing your knowledge

    • @SanjuKumar-ye8xz
      @SanjuKumar-ye8xz Pƙed rokem +7

      @@jherr currently I am watching No BS TS.😅😅😅😅😅😅. Thank you both of you.

    • @pastasawce
      @pastasawce Pƙed rokem +2

      I Love jack!

    • @imade_8515
      @imade_8515 Pƙed rokem +3

      @@jherr thanks jack I subscribed in your channel you are very good teacher thanks brad also for hosting

  • @JavierSuzuki
    @JavierSuzuki Pƙed rokem +54

    Thanks so much Jack and Brad for your amazing videos and the meaningful work you do. Very grateful for how much I've learned with you!

  • @Aftermathx25
    @Aftermathx25 Pƙed rokem +2

    You are first person to have any real arguments against using class components. I have been seeking then for a long time.

  • @naveedalirehmani4135
    @naveedalirehmani4135 Pƙed rokem +15

    Zustand is an amazing library, I worked on a react project which used React Query in combination with Zustand and let me tell you they worked together amazing, I am very happy that Zustand is gaining the popularity it deserves.

  • @EluLawlielt
    @EluLawlielt Pƙed rokem +25

    Love both of you guys, helped me a TON, maybe even changed my future. Don't stop doing the awesome work!

  • @kamilstepaniak3091
    @kamilstepaniak3091 Pƙed rokem +6

    Probably the most talented tutor on youtube for FE devs! Fantastic video Jack!

  • @r-i-ch
    @r-i-ch Pƙed rokem +1

    Love love LOVE Jack's content. Definitely great for stuff "beyond the basic" - Thanks Brad for letting him guest!

  • @tonimaunde
    @tonimaunde Pƙed rokem +3

    Thank you both for being part of my growth in web development.

  • @bryanelliott9610
    @bryanelliott9610 Pƙed rokem +5

    Extremely excellent summary of the primary things to pay attention to when working with React! Really well presented and easy to follow. Thanks Jack! Subscribed! 👍

  • @paras1kori
    @paras1kori Pƙed rokem +3

    Golden words! Honest and to the point content by you Jack 💯. Thank you so much for everything you do for us Brad â€đŸ’Ż

  • @youen5567
    @youen5567 Pƙed rokem +5

    Currently building a small project to learn react (and apollo) so I'm very thankful for such guidelines, thank you both
    (and I swear I will learn typescript more and add it to my project... soon)

  • @techhguy
    @techhguy Pƙed rokem +1

    Collaboration of the year, thank you Brad and Jack 🙏

  • @khalidben9940
    @khalidben9940 Pƙed rokem +2

    This is super helpful.Traversy Media thank you for bringing Jack here.He is awesome as usual.

  • @rashelmiah100
    @rashelmiah100 Pƙed rokem +2

    Loved the video. The presentation was great. Thanks Jack. It was super easy to understand. Also, Thanks to Brad for bringing this video to us.

  • @Gamer-gw6nj
    @Gamer-gw6nj Pƙed rokem +2

    Excellently handled all the matters.
    Brilliant Editing.
    Super clear video looks very high resolution.

  • @ElvenIvy07
    @ElvenIvy07 Pƙed rokem

    This was gold! I'd love to see more things like this on the channel! Thanks to both of you!

  • @rogermanea2140
    @rogermanea2140 Pƙed rokem

    Great vid, nice find! The concepts were illustrated amazingly, and were flowing in an understandable way

  • @AbayomiAishida-zb6il
    @AbayomiAishida-zb6il Pƙed 10 měsĂ­ci

    This is really amazing, I’ve been postponing for a while and finally watched. I’m excited I did. Thanks Brad, thanks Jack!

  • @sjzz
    @sjzz Pƙed rokem +1

    I have been working on React for about an year or soo professionally. And I have been following most these recommend do's and don'ts. 👌👍

  • @deathdogg0
    @deathdogg0 Pƙed rokem +1

    Surprised me when I click on this and someone else started talking to me. Thank you, this was actually really cool to watch. I've been working with react for not that long and Jack is a great teacher

  • @TheBdemba16
    @TheBdemba16 Pƙed rokem +1

    Jack good content as always. Been a subscriber for sometime, and it's good to see you on Brad's channel.

  • @ride_the_wind
    @ride_the_wind Pƙed rokem +1

    Amazing clear explanations at a very pleasant pace

  • @ToddDunning
    @ToddDunning Pƙed rokem +1

    So cool to see Jack here!

  • @naveedalirehmani4135
    @naveedalirehmani4135 Pƙed rokem +1

    This video was very helpful, Thank you Traversy for bringing us this amazing video.

  • @VenkateshMogili
    @VenkateshMogili Pƙed rokem +1

    Great content. Thank you Jack and BradđŸ˜â€â€â€

  • @ievgeniibielkin
    @ievgeniibielkin Pƙed rokem +1

    thank you, Jack. It is really simple explanation of the mentioned topics.

  • @Meechl0uch
    @Meechl0uch Pƙed rokem +1

    Thank You for sharing your time with us to give us very necessary information.

  • @m3speedking
    @m3speedking Pƙed rokem +2

    outstanding knowledge, great presentation, perfect video and audio

  • @BezzantSam
    @BezzantSam Pƙed rokem +2

    Jack is the best and an amazing person in real life. I do love your channel as well.

  • @imdbelal
    @imdbelal Pƙed rokem +1

    I didn't have idea you are on Brad's channel until you thanked Brad in the end.
    I picked up this video from notification just by reading title.
    Thank you both of you.

  • @CameraGuy19
    @CameraGuy19 Pƙed rokem +7

    The first time I learned ReactJS was from Bob Ziroll. Bob's a clear guy, you can understand crystal clear from him. Unfortunately I couldn't find a ReactJS course from him on Udemy. This video is a blessing from Brad, thanks Brad ❀.

  • @arbaaz_777
    @arbaaz_777 Pƙed rokem +1

    Class as always Brad. Many thanks

  • @ShaikMoAbdullah
    @ShaikMoAbdullah Pƙed rokem +1

    This was a very nice collection of tips. Thanks.

  • @haruka3203
    @haruka3203 Pƙed rokem

    I just got started in React and transitioning from a regular html/css/js developer. Things in React are just mind blowing. And I came here to avoid all the rookie mistakes and pro tip advances. Thank you soo muchh

  • @guvanchm3135
    @guvanchm3135 Pƙed rokem +1

    Great video as always!

  • @onlineaid
    @onlineaid Pƙed rokem +1

    Jack this information was awesome dude. It needs to understand every react developer mostly for beginners.

  • @theatypicaldeveloper
    @theatypicaldeveloper Pƙed rokem +2

    Very good explanation, great value for an entry level react devs

  • @be2wa
    @be2wa Pƙed rokem +1

    Woah! Great to see Mr. Herrington here on Traversy Media! The "crew" is getting more and more awesome!

  • @9622AX
    @9622AX Pƙed rokem +1

    Very Helpful video. Thanks man!!!

  • @arthurmukwapatira4958
    @arthurmukwapatira4958 Pƙed rokem

    Awesome! Simple and well explained, great work!!

  • @nimmneun
    @nimmneun Pƙed rokem +1

    On point with the pronunciation of Zustand đŸ’Ș and thanks for the vid Brad & Jack 😀

  • @omarkarim9298
    @omarkarim9298 Pƙed rokem +1

    Colab of the MVPs of Programmer CZcams

  • @gustavoaeidt
    @gustavoaeidt Pƙed rokem +2

    This last tip was amazing. It clicked with what I have seen in many projects but it's not entirely on the engineering team.
    Material UI, bootstrap, etc are really hard to tweak bc most of their CSS has the "! important" attribute.
    But designers tend to want to leave their special mark on the layout "just because". If you are building software at the MVP stage I can't stress enough to use an UI library and follow along the design guidelines for that specific library.
    When the app core is set, then you can spend the resources to build your own design system and ui library but doing both on a tight budget when you don't have a clear picture of the software architecture is pure madness.
    Can't tell how many projects would have been spared from chaos by following this simple advice

  • @wunshon
    @wunshon Pƙed rokem +1

    thanks Jack and Brad! You're great teachers! I leant a lot from the content!

  • @danilocorreia5104
    @danilocorreia5104 Pƙed rokem

    Such a good lesson! Thank you, Jack

  • @tech5956
    @tech5956 Pƙed rokem

    Great explanation , Thank you for sharing 😊

  • @tayw6466
    @tayw6466 Pƙed rokem +2

    I am a novice, I just finished a 12 week coding bootcamp where MERN was our final project stack, this type of content is really useful for someone in my position because I went from having my skill development be 100% directed by an outside influence, to being 100% my responsibility, this will help me gain a little bit of that structure back and give me a set of skills to reach for next. I cant say I understood 100% everything, but I understood enough of each subject to know what the first steps should be. I still have to review the course material because its so fast paced that no one could possibly absorb it all, I would be surprised if anyone was even able to absorb like 2/3rds of the material. But now I can review the course material and learn some typescript basics at the same time and see if I can translate the lessons from javascript to typescript. I think I am gonna try to redo my final project in typescript and see if I can follow all these dos and don'ts while I'm at it, that sounds like a fun next step.
    Cheers!

  • @kumar-saurabh
    @kumar-saurabh Pƙed rokem

    Thank-you so much Jack for this knowledge.

  • @saman6199
    @saman6199 Pƙed rokem +1

    Awesome tips. Thanks

  • @TechandcoffeeKe
    @TechandcoffeeKe Pƙed rokem +1

    Great content , Great timing . Thanks alot

  • @jeromesnail
    @jeromesnail Pƙed rokem

    These are actually really good pieces of advice. Thanks.

  • @BerserkedBear
    @BerserkedBear Pƙed rokem

    Awesome. I hope to see more of this. Thank you.

  • @qaiseriqbal2696
    @qaiseriqbal2696 Pƙed rokem +1

    Great content , thanks for sharing

  • @sprintwithcarlos
    @sprintwithcarlos Pƙed rokem +2

    Typescript ugly???!!! Typescript is awesome!!!! Thank Jack, great video and also thanks Brad for inviting Jack. PS: I think that making your own UI library/framwork is not that bad and a great learning experience BTW

  • @eduardshulkin1229
    @eduardshulkin1229 Pƙed rokem

    Great overview. Much appreciated !!!

  • @craigleppan7164
    @craigleppan7164 Pƙed rokem

    Starting out with react. Very helpful and deep. Keeps someone like me on a good path or road map. 🙏

  • @niloyrudra7905
    @niloyrudra7905 Pƙed rokem +1

    Very very useful tips! Thanks!

  • @sudoku37
    @sudoku37 Pƙed rokem

    Always appreciate for such a great content :)

  • @JosephMaramba
    @JosephMaramba Pƙed rokem +24

    This format is totally working if it can bring in heavyweights like Jack. His channel has pretty awesome advanced React, TS videos. Bring in Dave Gray next with a frontend, backend or fullstack tutorial 😅🙏

    • @leroyombiji5699
      @leroyombiji5699 Pƙed rokem +2

      I'd definitely vouch for Dave Gray

    • @johnychinese
      @johnychinese Pƙed rokem +1

      Definitely, Dave is one of the best teachers out here

  • @ralphmartynsamaniego7017
    @ralphmartynsamaniego7017 Pƙed rokem +1

    I just started React a few months ago, thank you for the tips..

  • @jkalvar
    @jkalvar Pƙed rokem +1

    Great video, great teacher. Thank you 👍

  • @Aaam1rK
    @Aaam1rK Pƙed rokem +2

    Great video, love Jack's content. Just want to point out that the `?` mark implies that the field could be `undefined`, not `null`.

  • @kirksurber7262
    @kirksurber7262 Pƙed rokem

    Learned a lot! Thank you!

  • @zoaybk
    @zoaybk Pƙed rokem

    You are always amazing and super helpful đŸ™ŒđŸœ

  • @d.christianrathjens7209
    @d.christianrathjens7209 Pƙed rokem

    Exactly what I needed. Thank you!

  • @yasserbouanani2999
    @yasserbouanani2999 Pƙed rokem

    That was fantastic, thank you so much for those golden tips.

  • @mikaeileghbal5695
    @mikaeileghbal5695 Pƙed rokem

    Thanx a lot. Your tutorials are amazing. I learn a lot from you.

  • @fabiofaria1327
    @fabiofaria1327 Pƙed rokem

    I love your videos.
    Always big help to improve my development! Thanks a lot!

  • @darkmift
    @darkmift Pƙed rokem +1

    Awesome team up!

  • @kabagambedaniel2468
    @kabagambedaniel2468 Pƙed rokem +1

    thanks alot Brad and jack

  • @himanshuchoudhary7880
    @himanshuchoudhary7880 Pƙed rokem +1

    Great Explanation đŸ€©

  • @diegolanzarote97
    @diegolanzarote97 Pƙed rokem +10

    Agree to all of them except the UI one, I have encountered multiple cases where libraries do not cover the design team requests. Mostly all of the time it is better to organize well your code

  • @russomaclaud6151
    @russomaclaud6151 Pƙed rokem +1

    Excellent class
    📒I learned more with this video than in hundreds 💯

  • @passionforkiteflying
    @passionforkiteflying Pƙed rokem +1

    Excellent video on React practice!

  • @umairqamar2672
    @umairqamar2672 Pƙed rokem

    Loved it !!!! This guy is super duper amazing !

  • @rodanus7112
    @rodanus7112 Pƙed rokem

    This a really helpful video! Thank you so much for the great content!

  • @exploits_foot3337
    @exploits_foot3337 Pƙed rokem

    Thanks for these tips, very helpful

  • @hectorg362
    @hectorg362 Pƙed rokem

    Such a nice video! Thanks for this!

  • @sweatypotato248
    @sweatypotato248 Pƙed rokem +1

    Ohh, jack Its nice seeing you here

  • @PeterMumford
    @PeterMumford Pƙed rokem

    Hey this was incredibly useful and informative. I'm following.

  • @roman_k89
    @roman_k89 Pƙed rokem +1

    thanks! very interesting and helpful!

  • @EddyVinck
    @EddyVinck Pƙed rokem +27

    Agree with everything here, except the last one in some scenarios. If you have a custom design which isn't already based on a library like MUI, it can be a real pain to customize the components to match your design. Great video!
    My preferred approach for custom designs is taking advantage of "headless" libraries such as Headless UI, Radix, and React Aria.

    • @Issvor
      @Issvor Pƙed rokem +4

      Regarding the last point, he didn't say don't make your own designs, he said don't make your own library

    • @hamzahmd_
      @hamzahmd_ Pƙed rokem

      You can even customize your designs with Styled-Components in combination with libraries like MUI.

    • @markokafor7432
      @markokafor7432 Pƙed rokem +5

      Or just opt for tailwind

    • @alexmachin1785
      @alexmachin1785 Pƙed rokem +2

      HeadlessUI and Tailwind is my favourite combo, I've just started using and it's so cool and really easy to build components.

    • @Bylethdev
      @Bylethdev Pƙed rokem +1

      i'm on the same boat as you, but i think that one specific "dont" is aimed to either new devs or devs that dont focus too much on front end. for those ppl, things like MUI helps a lot.

  • @Frank2tek
    @Frank2tek Pƙed rokem +1

    I'm a long time React developer and i totally agree all the thought discussed in the video.... 👌

  • @kirylbehansky1315
    @kirylbehansky1315 Pƙed rokem

    Nice one about dependency arrays!

  • @alikisang827
    @alikisang827 Pƙed rokem +1

    Mashallah! This is a great video @Traversy Media I have been following you keenly for somewhile and I can adhere that this is my best CZcams Channel so far and it has thought me a lot a Software Developer. One day I am gonna develop a big website Inshallah. Big love from Kenya.🚀🚀😍😍

  • @shivamjhaa
    @shivamjhaa Pƙed rokem +3

    AMAZING VIDEO!
    One addition might be that react does not use triple equals but uses Object.is().

  • @sjoerdvermeijden
    @sjoerdvermeijden Pƙed rokem +1

    Thanks, this was very informative!

  • @Dave-dl8ey
    @Dave-dl8ey Pƙed rokem +1

    Stoked to see 2 of my favorite people overlapping! 😎👍

  • @pavelisel4127
    @pavelisel4127 Pƙed rokem +2

    Loved the video. Only thing was that the usage of ? in typescript is to declare that the value will be undefined. If you want to declare a null you will have to actually set that type. Something like name: string | null

  • @classicwannabe7710
    @classicwannabe7710 Pƙed rokem +7

    10:06 small correction - the question mark is called an optional parameter. It is equivalent to saying: put whatever type I define or undefined (e.g. someVar?: string === someVar: string | undefined). So when putting null under the address variable explicitly, typescript will complain

    • @tadakuniyasuda8214
      @tadakuniyasuda8214 Pƙed rokem

      I am newbie, and this kind of error scares me to use typescript. I know I should learn how “null” and “undefined” are different, but what is the solution for this ?

    • @classicwannabe7710
      @classicwannabe7710 Pƙed rokem +2

      @@tadakuniyasuda8214 better not to avoid using it. When you start writing a code with Typescript and get used to it, you won't probably want to come back.
      I tried to maintain a relatively big project purely written in Javascript both on frontend and backend. Man, there were so many bugs that could easily be identified during compilation.
      Generally, undefined means that something is missing. Simple example is when you want to access any variable from empty object. Null usually means that something is defined but its value is nothing. So my point here is you should not put undefined explicitly under variables as a value, prefer null instead. However, when defining types or interfaces, it really depends on your code what you expect it to do

    • @tadakuniyasuda8214
      @tadakuniyasuda8214 Pƙed rokem

      @@internet4543 Thank you, I am going to learn typescript now.

  • @osmangoni2376
    @osmangoni2376 Pƙed rokem +1

    Very interesting video. thanks for sharing...

  • @paolotessarolo8927
    @paolotessarolo8927 Pƙed rokem +1

    Very useful, thanks

  • @phucnguyen0110
    @phucnguyen0110 Pƙed rokem +1

    This is a collab that I didn't see coming at all :O

  • @jjrise
    @jjrise Pƙed rokem +1

    fantastic video!

  • @edwinschutjes8878
    @edwinschutjes8878 Pƙed rokem +7

    Great video as always. :) I do think the last topic is very debatable. I've worked on many projects where building out a custom UI library/Design System made more sense. But that choice involves a lot of factors like the design itself, future plans for the app or the company and even who needs to work with it or maintain it.

    • @rajatgupta2625
      @rajatgupta2625 Pƙed rokem +3

      i agree, it depends on the design the client wants, i worked in a project where we used Material UI but the design they wanted was so customized that we essentially had to fight with material ui components to look that way which defeated the purpose of using them in the first place.

    • @edwinschutjes8878
      @edwinschutjes8878 Pƙed rokem +1

      @@rajatgupta2625 Yea I know that struggle. An existing UI library is great to work with, as long as you can mostly confirm to those existing components.

  • @vithushanjeyasothy1883
    @vithushanjeyasothy1883 Pƙed rokem

    Thank you Jack for the great React content

  • @1000ylovers
    @1000ylovers Pƙed rokem

    I wanna Thank yall for this amazing content

  • @Mike----
    @Mike---- Pƙed rokem +1

    Great video!

  • @diego0ji
    @diego0ji Pƙed rokem +2

    A M A Z I N G ! Thanks💙💙

  • @Klivdx
    @Klivdx Pƙed rokem +1

    Golden advices!