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

Поделиться
HTML-код
  • Опубликовано: 2 авг 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 RUclips 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
  • НаукаНаука

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

  • @TraversyMedia
    @TraversyMedia  Год назад +416

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

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

      I want to thank YOU for having me on!.

    • @jarrahello877
      @jarrahello877 Год назад +39

      I want to thank BOTH of you for sharing your knowledge

    • @SanjuKumar-ye8xz
      @SanjuKumar-ye8xz Год назад +7

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

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

      I Love jack!

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

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

  • @JavierSuzuki
    @JavierSuzuki Год назад +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!

  • @naveedalirehmani4135
    @naveedalirehmani4135 Год назад +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.

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

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

  • @EluLawlielt
    @EluLawlielt Год назад +25

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

  • @kamilstepaniak3091
    @kamilstepaniak3091 Год назад +7

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

  • @r-i-ch
    @r-i-ch Год назад +1

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

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

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

  • @bryanelliott9610
    @bryanelliott9610 Год назад +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 Год назад +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 Год назад +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)

  • @deathdogg0
    @deathdogg0 Год назад +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

  • @CameraGuy19
    @CameraGuy19 Год назад +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 ❤.

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

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

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

    Collaboration of the year, thank you Brad and Jack 🙏

  • @rashelmiah100
    @rashelmiah100 Год назад +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.

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

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

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

    So cool to see Jack here!

  • @imdbelal
    @imdbelal Год назад +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.

  • @diegolanzarote97
    @diegolanzarote97 Год назад +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

  • @Gamer-gw6nj
    @Gamer-gw6nj Год назад +2

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

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

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

  • @sjzz
    @sjzz Год назад +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. 👌👍

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

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

  • @ota-ke
    @ota-ke Год назад +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 Год назад +2

      I'd definitely vouch for Dave Gray

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

      Definitely, Dave is one of the best teachers out here

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

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

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

    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

  • @EddyVinck
    @EddyVinck Год назад +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 Год назад +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_ Год назад

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

    • @markokafor7432
      @markokafor7432 Год назад +5

      Or just opt for tailwind

    • @alexmachin1785
      @alexmachin1785 Год назад +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 Год назад +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.

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

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

  • @gustavoaeidt
    @gustavoaeidt Год назад +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

  • @tayw6466
    @tayw6466 Год назад +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!

  • @AbayomiAishida-zb6il
    @AbayomiAishida-zb6il Год назад

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

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

    Ohh, jack Its nice seeing you here

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

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

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

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

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

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

  • @novailoveyou
    @novailoveyou Год назад +5

    Good content! Props to ya guys as always
    One correction tho at 10:06. The questionmark like this in typescript means that the key can be missing so it's value is possibly undefined. If you also need to include null in the range of values, you'd want to use what's called enum in typescript like this: string | null
    So an example would be
    type TMyType = {
    myKey: string
    myAnotherKey?: string | null
    }
    const myVal = ({ myKey, myAnotherKey }: TMyType) => {} // accessing myAnotherKey would give you either undefined, or string, or null

  • @pavelisel4127
    @pavelisel4127 Год назад +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

  • @sprintwithcarlos
    @sprintwithcarlos Год назад +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

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

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

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

    Amazing clear explanations at a very pleasant pace

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

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

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

    Class as always Brad. Many thanks

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

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

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

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

  • @classicwannabe7710
    @classicwannabe7710 Год назад +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 Год назад

      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 Год назад +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 Год назад

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

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

    On point with the pronunciation of Zustand 💪 and thanks for the vid Brad & Jack 😀

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

    Colab of the MVPs of Programmer RUclips

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

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

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

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

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

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

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

    A M A Z I N G ! Thanks💙💙

  • @edwinschutjes8878
    @edwinschutjes8878 Год назад +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 Год назад +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 Год назад +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.

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

    Great content. Thank you Jack and Brad😍❤❤❤

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

    Great video as always!

  • @Dave-dl8ey
    @Dave-dl8ey Год назад +1

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

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

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

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

    outstanding knowledge, great presentation, perfect video and audio

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

    i can't wait to see it.
    🤩

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

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

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

    Awesome team up!

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

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

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

    Some great tips

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

    Thanks for the video, even though lots of the stuff you talk already explained even in older React docs (there's a beta one iirc). But main culprit I believe is, people rather than reading, try to use their knowledge from other libraries and frameworks, which make them misjudge how React works. Unlike many other, React has no magic tricks (except jsx), it is plain javascript and some clever stuff like hooks. So, if one knows any programming language, not just javascript and knows basics of React (which can be read from docs), it is pretty trivial task to understand what's going on. I'd say this is the gem of the React, it being a library this way. Anyway, again, thanks for your efforts. I've seen some people doing some of those mistakes even in production, which I think is unbelivable; so having videos like this really helps in that matter (atleast that's what I hope).

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

    This was a very nice collection of tips. Thanks.

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

    thanks alot Brad and jack

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

    Great content , Great timing . Thanks alot

  • @alikisang827
    @alikisang827 Год назад +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 RUclips 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.🚀🚀😍😍

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

    Such a good lesson! Thank you, Jack

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

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

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

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

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

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

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

    Awesome! Simple and well explained, great work!!

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

    I can listen to Jack say "ZUSTAND!" all day long

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

    Great video, great teacher. Thank you 👍

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

    Great overview. Much appreciated !!!

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

    Always appreciate for such a great content :)

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

    Great content , thanks for sharing

  • @yasser.dev7
    @yasser.dev7 Год назад

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

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

    These are actually really good pieces of advice. Thanks.

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

    You are always amazing and super helpful 🙌🏽

  • @9622AX
    @9622AX Год назад +1

    Very Helpful video. Thanks man!!!

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

    Awesome tips. Thanks

  • @kumar-saurabh
    @kumar-saurabh Год назад

    Thank-you so much Jack for this knowledge.

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

    Great explanation , Thank you for sharing 😊

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

    This guy is just fantastic

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

    Very very useful tips! Thanks!

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

    Great Explanation 🤩

  • @Mike----
    @Mike---- Год назад +1

    Great video!

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

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

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

    fantastic video!

  • @d.christianrathjens7209
    @d.christianrathjens7209 Год назад

    Exactly what I needed. Thank you!

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

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

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

    I am new on React but this is to die for

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

    Thank you Jack for the great React content

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

    Thanks it's good to hear am on the right part.

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

    Learned a lot! Thank you!

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

    Such a nice video! Thanks for this!

  • @1000ylovers
    @1000ylovers Год назад

    I wanna Thank yall for this amazing content

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

    Very useful, thanks