Junior Vs Senior Code - How To Write Better Code As A Web Developer - React

Поделиться
HTML-код
  • Опубликовано: 24 июл 2024
  • 🚨 IMPORTANT:
    Learn React Today Course: courses.webdevsimplified.com/...
    Writing code is easy. Writing clean code, though, is much harder. In this video I take a look at three different React code examples from a beginner, intermediate, and advanced web developer. The goal of this is to show you how a senior developer will think while programming and how they will structure their code to be as clean and well-written as possible.
    📚 Materials/References:
    GitHub Code: github.com/WebDevSimplified/N...
    Pass By Reference Vs Value: • Reference Vs Value In ...
    Derived State Article: blog.webdevsimplified.com/201...
    🧠 Concepts Covered:
    - How senior developers think
    - How to use React state properly
    - How to use React useEffect properly
    - What to think about when programming
    - The differences between senior and junior developers
    🌎 Find Me Here:
    My Blog: blog.webdevsimplified.com
    My Courses: courses.webdevsimplified.com
    Patreon: / webdevsimplified
    Twitter: / devsimplified
    Discord: / discord
    GitHub: github.com/WebDevSimplified
    CodePen: codepen.io/WebDevSimplified
    ⏱️ Timestamps:
    00:00 - Introduction
    00:36 - State Mistakes - Noob
    01:50 - State Mistakes - Advanced
    04:06 - State Mistakes - Pro
    06:34 - Effect Mistakes - Noob
    10:34 - Effect Mistakes - Advanced
    12:21 - Effect Mistakes - Pro
    14:27 - List Mistakes - Noob
    17:16 - List Mistakes - Advanced
    20:10 - List Mistakes - Pro
    21:36 - Outro
    #NoobVsPro #WDS #ReactCleanCode

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

  • @firedawn
    @firedawn 2 года назад +9

    Great presentation style! Makes it really easy to see the progression from one version to the next.

  • @joshkpatt
    @joshkpatt 3 года назад +6

    I just completed my first React to-do list app without any tutorial today, I found it pretty funny this video in particular came out today and the last example was a to-do list LOL. Great video!

  • @kvncnls
    @kvncnls 3 года назад +5

    Thank you so much for this man! I'm currently learning React so this came right on time!!

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

    Awesome! I have grown up as react developer with the help of this series! Thanks man!

  • @tino6986
    @tino6986 3 года назад

    Another amazing video! You´re helping me more than anyone. Thanks a lot Kyle!

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

    I was stuck on a bug for a long time and this random video helped me solve it. Thank You.

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

    Thank you so much for the information. I just realized I was changing the state directly inside setState, but my app is running fine!! or maybe I haven't done enough testing. Really love that idea of storing reference of original item inside selected state. Thank you.

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

    This is the best video I've ever seen on React. Superb Work! Loved it ❤️

  • @insteresting
    @insteresting 9 месяцев назад

    Kyle, your videos are amazingly helpful! Keep up this great work!

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

    Im learning react for an associate developer position and this series has been super helpful especially for avoiding common mistakes ive definetly encountered some of these myself. Thanks for the videos Boss :)

  • @Aaronmoreno
    @Aaronmoreno 3 года назад +3

    this new series is amazing! Would love some more of this, even to just general javascript logic

  • @nabiisakhanov3522
    @nabiisakhanov3522 3 года назад +121

    I mean code that doesn't work isn't noob code it's broken code

    • @RLXified
      @RLXified 3 года назад +5

      Agreed. These examples are more like progression from an outline of a code to a more refined version.

    • @NorteXGame
      @NorteXGame 3 года назад +11

      I guess so. But this video is made to promote correct code and show the code that a noob would write, not necessarily just bad-efficiency (but working) code.

    • @foxjonesofficial
      @foxjonesofficial 3 года назад +1

      Broken noob code

  • @rahulshah4994
    @rahulshah4994 3 года назад +5

    This video is sooooo helpful! I haven't found this anywhere else and I make these mistakes all the time! This is definitely a go to video that I'm going to recommend to all my colleagues! Thanks a ton for this 😁😁😁😁 Super super helpful! Gonna watch this frequently!

    • @shivanigaddagimath6105
      @shivanigaddagimath6105 3 года назад

      Hi Rahul! Are you looking to explore web development job opportunities currently? We are a web development company and looking for developers with experience. Let me know if interested!

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

    Hi Kyle. You are the most amazing tutor on RUclips !
    Extremely well thought out content. Love from Pakistan

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

    Great video! Even though I have done React for quite a long time professionally I got quite a lot to take home...

  • @user-qe5vq3dq5f
    @user-qe5vq3dq5f 3 года назад +35

    Thank you for continuing this series

    • @WebDevSimplified
      @WebDevSimplified  3 года назад +13

      You are very welcome! I really enjoy this series.

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

    thanks, really clarified some of the concepts for me and I now finally understand why I can’t set state and then console.log it on the next line

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

    As always, excelent work, dude!

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

    Thanx Kyle, keep'em coming

  • @nijinnazar4760
    @nijinnazar4760 3 года назад +1

    This is what I really wanted.😍😍😍
    Thanks a lotttttt @webdevsimplified ❤️😇

    • @shivanigaddagimath6105
      @shivanigaddagimath6105 3 года назад

      Hi Nijin! Are you looking to explore web development job opportunities currently? We are a web development company and looking for developers. Let me know if interested!

  • @che_coelho
    @che_coelho 3 года назад +32

    Hey Kyle. Love your work. Video request: Can you take us through a wholesome process of setting up a sign up and login portal, preferably using Node, Express and MongoDB? Perhaps you could also add some JWT and then some email notifications (account created/please verify).
    Most tuts on this subject are either half baked or do not easily demonstrate how to link this with other personal projects users may be creating.
    Oh, and favourite Pink Floyd album?

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

      Dark side of the moon!

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

    So much quality, thank you very much

  • @adam.foster
    @adam.foster 3 года назад +6

    Cool tips! Ditch proptypes and go full TypeScript

  • @FlorinPop
    @FlorinPop 3 года назад +32

    Great video Kyle! I learned new things ☺️

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

      Sorry to be offtopic but does anybody know a method to log back into an Instagram account??
      I stupidly lost the account password. I appreciate any tricks you can offer me!

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

      @@wilsonalvin7606 click forgot password button

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

    Thanks for this video, helped me a lot!

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

    Thanks Kyle for these nice tips

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

    that is a great lesson and toughet me a lot !

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

    Great Video Man!

  • @andrewbarzu6617
    @andrewbarzu6617 2 года назад +30

    I think for the "pro" version of the list example you could also wrap the selectedTodo with a useMemo, so that it's not recomputed on every rerender but only if the selectedTodoId changes. This can help with long lists and/or when there are many rerenders that happen in a short span, so that you don't have to find it every single time but only when the selectedId changes.

    • @kmsomebody
      @kmsomebody 2 года назад +9

      That would mean the selectedTodo wouldn't change, if todos changed but the selectedTodoId didn't.
      todos would have to be added to the dependency array too.

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

      One point to note here is useMemo() is only worth for expensive calculation, otherwise it's just adding more overhead to your app.

  • @damienminter1999
    @damienminter1999 3 года назад

    Awesome video. Just what I needed

  • @MrSanya789
    @MrSanya789 2 года назад +10

    Hi, Kyle, thanks you for the video! As I understand pro solution for useEffect with useMemo has the same problem as advanced solution. If you want to add new properties to user object you need to update useMemo dependencies insted of useEffect dependencies

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

      Not exactly, the reason including name and age in the useEffect dependencies is not great is because the useEffect is separate from the creation of the object. If this object was created in another file/component and changed there, it’s possible to forget to go back to this file and change it. With the useMemo solution the dependencies are linked to where the object is created so it would be much harder to forget

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

      One thing to think about here -- with "pro" tooling set up, we'd probably have an ESLint rule that would automatically catch that you are missing items in your dependency array. This would be something displayed in your IDE; and with other tools, you'd be prevented from making any commits in your repository without resolving these types of issues (and you could go even further by having these same checks be done in CI and prevent builds if errors like this are found).

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

    Great video. Thank you!

  • @mehtabahmed6092
    @mehtabahmed6092 3 года назад

    Thank you so much, really helped me alot.

  • @TribalRockGod
    @TribalRockGod 3 года назад

    This is so much effort and takes so much js knowledge just to understand this, plus all of the react made up functions...
    In vue, state change is not async and makes life 5x better so you dont have to listen for state changes in another function, you use vue jus like regular js, making learning progress so much faster

  • @dharmang
    @dharmang 3 года назад

    Really Insightful!! 👌🏻

  • @harshilparmar9076
    @harshilparmar9076 3 года назад +1

    Thank you so much for all of your efforts ❤️

    • @shivanigaddagimath6105
      @shivanigaddagimath6105 3 года назад

      Hi Harshil! Are you looking to explore web development job opportunities currently? We are a web development company and looking for developers. Let me know if interested!

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

    Pro versions helped me a lot, thanks

  • @Jihed
    @Jihed 3 года назад +7

    Hey ,thanks for sharing.
    In the official documentation the examples are always using setState( couter ) directly. Do you have any idea why they didn't mention the function version instead ?

  • @benwen2602
    @benwen2602 3 года назад

    thanks for spending time to prepare for this

  • @samanshakya3848
    @samanshakya3848 3 года назад +5

    Thank you. Your content makes me wanna code when i feel lazy.

    • @yuvrajmakkena876
      @yuvrajmakkena876 3 года назад

      same here bro

    • @shivanigaddagimath6105
      @shivanigaddagimath6105 3 года назад

      Hi Saman! Are you looking to explore web development job opportunities currently? We are a web development company and looking to for developers. Let me know if interested.

  • @DIEZ919191
    @DIEZ919191 3 года назад

    Extremely useful information right here!!!!

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

    Thanks for your videos.

  • @octaviusbytes
    @octaviusbytes 3 года назад +1

    20:10 how would you implement this idea using the useRef hook?

  • @saitejagatadi9711
    @saitejagatadi9711 3 года назад

    Perfect video Kyle ❤️

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

    Very helpful! Thanks!

  • @ASoftwareEngineer
    @ASoftwareEngineer 3 года назад

    last Pro version of video, the second useState should have a default right? just like what you said from previous video

  • @abhijiths148
    @abhijiths148 3 года назад +1

    Wow... Its time to go from Junior developer to Senior developer 😎 Thanks man.🙏

    • @shivanigaddagimath6105
      @shivanigaddagimath6105 3 года назад

      Hi Abhijith! Are you looking to explore web development job opportunities currently? We are a web development company and looking for developers. Let me know if interested!

  • @neliox_
    @neliox_ 3 года назад +1

    would Pro useEffect example work with useCallback as well as with useMemo?

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

    Thanks Kyle!
    You are a wonderful icon

  • @mohamedadnanealkhiati5006
    @mohamedadnanealkhiati5006 3 года назад

    Amazing video!

  • @siddharthdeepakbhaipanjwan722
    @siddharthdeepakbhaipanjwan722 3 года назад +1

    Because of your videos many of my concepts become more clear

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

    Awesome, very deep

  • @akhilbandari
    @akhilbandari 3 года назад +5

    Great series. Especially for self-taught developers

    • @shivanigaddagimath6105
      @shivanigaddagimath6105 3 года назад

      Hi Akhil! Are you looking to explore web development job opportunities currently? We are a web development company and looking to for developers. Let me know if interested.

    • @akhilbandari
      @akhilbandari 3 года назад +1

      @@shivanigaddagimath6105 Yes I am. You can email the details to akhilbandari9999@gmail.com. Thanks

    • @shivanigaddagimath6105
      @shivanigaddagimath6105 3 года назад

      @@akhilbandari Thanks Akhil! I will send you a mail soon.

    • @shivanigaddagimath6105
      @shivanigaddagimath6105 3 года назад

      Hi Akhil. Please check the mail I have sent you and use the link to connect with me on LinkedIn. Thanks

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

    6:00 in the pro version, where does the currCount come from?

  • @xshad3x348
    @xshad3x348 3 года назад

    For the last example, in case of a lot of nested data in arrays there is the best solution, IMMER! :D

  • @jiaxie5669
    @jiaxie5669 3 года назад

    Thank you so much! That's what I am looking for a long time. Very appreciated!

  • @madhanr5622
    @madhanr5622 3 года назад

    Great video✌️.keep doing❤️

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

    Can someone please explain how he derives the currCount from the count variable? I don’t see currCount being instantiated, or the count variable being passed into the onclick..

  • @noelkirkland
    @noelkirkland 3 года назад

    I love your content, Kyle. Next, can you teach us how to do that guitar lick that is all of your video intros? I suspect you recorded that yourself rather than pulling a sample off the web. I like it and would love to see a demo in action.

    • @WebDevSimplified
      @WebDevSimplified  3 года назад

      Thank you. I actually did pull it off the web since I didn't know how to play guitar back then. I still am just learning to play, but I should learn that lick since it is pretty much my signature sound now.

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

    Thank you !!!

  • @waqasalikhanrajput
    @waqasalikhanrajput 3 года назад

    Hey Kyle, I lost the link to your react course. Can you please share it. Thanks

  • @arie7135
    @arie7135 3 года назад +1

    Thanks!
    if - setCount(currCount => currCount + 1) is asynchronous, how can I be sure that setCount(currCount => currCount + 1) in the next line get the up to date currCount ?

    • @dealloc
      @dealloc 3 года назад +3

      So first off, the setter is not asynchronous, but is scheduled by React (currently only in event handlers, but may change in the future). In order to always be in sync with each render of the component, you can use `useEffect`.
      In order to only "filter" for specific values that you want your effect handler to be called on, you can pass dependencies (an array of values) to useEffect, so that you don't need to run your effect more often than needed.
      Think of the dependencies as a way to say "I want to stay in sync with these values".
      This encourages separation of concerns, and allows for greater reusability.

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

    Correct me if I'm wrong but would it not have been better to explain the reason why useEffect() is giving the correct value is bc after calling the setCount Func, it triggers the Counter function to run again after the last useState was triggered and thus you're getting an updated state of count?

  • @bunnybloods768
    @bunnybloods768 3 года назад

    Bro,
    While Using anchor tags,we cant use # symbol .it gives warning and we cant use empty too.

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

    Maybe it's a dumb question. But at 19:00 (talking about the importance of keys), I thought all components re-render if the parent's state/props changes. Does adding "key" really stop it from re-rendering?

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

    I didn't understand how useMemo is better than adding the properties in the useEffect dependency array. We are still adding all the properties in the useMemo dependency array, which in turn will cause a problem once there are too many of them. What would be the optimal solution here? Using a ref?

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

    How You Opened The Console In Separated Tap??

  • @vivekgaur7686
    @vivekgaur7686 3 года назад +1

    Hey, thanks for all the videos. Can you suggest something to build by using twitter api's with mern stack not clone type but anything useful with twitter or any other platform apis

    • @shivanigaddagimath6105
      @shivanigaddagimath6105 3 года назад

      Hi Vivek! Are you looking to explore web development job opportunities currently? We are a web development company and looking to for developers. Let me know if interested.

  • @Knuddelfell
    @Knuddelfell 3 года назад

    Really helpful 🔥😊

  • @kevinroirigorbasina6039
    @kevinroirigorbasina6039 3 года назад

    Hi Kyle, Thank you for your posting these kind of videos. I Just have a question about State Mistakes. Instead of a callback that takes in the state before the change, can I use an async function and await for that state change instead?

    • @xshad3x348
      @xshad3x348 3 года назад

      No, a setter gets only a callback

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

    You can dependency list for useMemo but not for useEffect ?

  • @sergeyplotnikov5031
    @sergeyplotnikov5031 3 года назад +3

    Спасибо за годный контент! Thank you for good content!

  • @adeete09
    @adeete09 3 года назад +1

    Please continue this series with next on angular and node.js

    • @shivanigaddagimath6105
      @shivanigaddagimath6105 3 года назад

      Hi Adeete! Are you looking to explore web development job opportunities currently? We are a web development company and looking for developers. Let me know if interested!

  • @StrayKev
    @StrayKev 3 года назад

    I really like this series

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

    Sir, What is currCount? Is it predefined?

  • @ji-d
    @ji-d 3 года назад

    무척 도움이 많이 되었습니다.
    리액트 처음 슬때 많이 실수하는 것이네요

  • @varuns6451
    @varuns6451 3 года назад +1

    I see some improvements, on the Pro part of the list code. As the reference to the selectedTodo will change for every render, for a large list the find method may cost resource. We can add useMemo to it with selectedTodoId as dep. Pls let me know if I am wrong..

    • @shivanigaddagimath6105
      @shivanigaddagimath6105 3 года назад +1

      Hi Varun! Are you looking to explore web development job opportunities currently? We are a web development company and looking to for developers. Let me know if interested.

  • @haldx
    @haldx 3 года назад +1

    The useMemo code still needs the individual user properties as dependencies. If you add a property to user up the component tree, wouldn't you still have to remember to update the useMemo code?

    • @fede-balzi
      @fede-balzi 2 года назад

      Yes, but in that case you would have the linter telling you that a value is missing in the dependency array

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

    Would a different "Pro" solution for the Effect mistake would be to lift the `user` object to the component state level?
    You already are updating the `user.name` via `setName()` anyway. This way your component has less dependencies and doesn't need to introduce the concept of `useMemo()`
    The only difference with that solution would be that this component in theory would be able to modify the `user.age` if you were to write something like `setUser({...user, name: 'foo'})...when in reality that piece of data was provided as a prop so maybe it should be treated as immutable? Honestly not sure... I like the readability of just leveraging `useState()` and not introducing a 3rd type of hook

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

    Hey Kyle.
    Thanks for your great channel !!!!
    Is your full react course is up to date with latest react version (18) ?

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

      It is currently not up to date with React 18 but I am working on an update. The course is still up to date with things like hooks thought. React 18 doesn't change too much about React and really only adds a few niche things.

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

      @@WebDevSimplified OK, i understand. May you grant me a discount code for the react course?
      Thank you in advanced, Appreciate your work!

  • @zillboy1591
    @zillboy1591 3 года назад

    thanks, now no mistakes in "useEffects", useMemo is quite nice

  • @stoneshou
    @stoneshou 3 года назад

    why not always use function version in setState.?

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

    For the pro version of the List example, it would be more efficient to wrap the selectedTodo inside a useMemo:
    const selectedTodo = useMemo(() => {
    return todos.find(...)
    }, [selectedTodoId])
    That way, we have no unnecessary reassignments on rerender when the selected todo didn't change

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

      I’m late to the party, but yes, this is the proper way to do it. I realized I’m using the alternative (suboptimal) solution (DO NOT DO THIS):
      const [selectedTodo, setSelectedTodo] = useState();
      useEffect(() => {
      const newSelectedTodo = todos.find(…);
      setSelectedTodo(newSelectedTodo);
      }, [selectedTodoId]);
      It’s suboptimal because changing the selectedTodo triggers TWO rerenders instead of one. Once when selectedTodoId changes, and another when selectedTodo changes.
      State changes trigger rerenders! So your solution is better because it uses useMemo, which does NOT trigger rerenders when it changes!
      I’m going to replace my code with yours right now! :)

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

      If you check his blog article on the derived state he actually mentions this
      However he said that since it doesn't take too long it isn't necessary and can slow it down by more memory usage
      However if it's an incredibly long array then yes it's worth it ig

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

    kyle is a monstaaaaaaaaaaaah
    thank you, dude! :D

  • @MilanDrazic
    @MilanDrazic 3 года назад

    11:40 what is difference between noob and advance version here?

  • @VitalMercenary
    @VitalMercenary 3 года назад

    Is there a reason why at 13:40 when you use useMemo you return the object as {age,name}, but the order for the array [name,age]?

    • @MiMiMORG
      @MiMiMORG 3 года назад

      The order doesn't matter, you're just listing the dependencies. It could be [age, name] as well. 😀

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

    18:17 i think it is not necessary to create new value in the new array.. since react will only check whether the state value itself (which is the array has changed) and it would not care about the elements inside of it.. and array.map create a new array.

  • @b9413
    @b9413 3 года назад +1

    recommend that please make tutorial on C

  • @87whateva
    @87whateva 2 года назад +2

    Could you further elaborate the code line setCount(currCount => currCount - 1) ? I did'nt know that you can pass a function to the setter from useState and there is no value passed for currCount.

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

      CurrCount is just a placeholder. It can be any name you want. setCount(x => x - 1) is the exact same. currCount or x or whatever name you give it references the actual variable count.

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

      @@mritz579 do you know the technical term for these kinds of expressions?

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

      If we pass a function to setState, the argument to the function (by default) is the previous value.

  • @prasannanaik1023
    @prasannanaik1023 3 года назад +1

    You are my best RUclipsr!❤️

    • @shivanigaddagimath6105
      @shivanigaddagimath6105 3 года назад

      Hi Prasanna! Are you looking to explore web development job opportunities currently? We are a web development company and looking for developers. Let me know if interested!

  • @irondsd
    @irondsd 3 года назад +119

    Oh, come on. Advanced code is the code that barely works and pro is the one that actually works? Really?

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

      And noob didn’t work at all. Lame

    • @sideshowlol
      @sideshowlol 2 года назад +5

      @@sir_brian_d That’s actually the point. Perhaps it would have been clearer if Kyle had titled them: “Good“, Bad” & “Ugly”!

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

      silence nerd

  • @viponordic4241
    @viponordic4241 3 года назад

    Had no idea of the arrow function in useState

  • @ahmetsametyuzlu3020
    @ahmetsametyuzlu3020 3 года назад

    Great video

  • @zoaybk
    @zoaybk 3 года назад

    4:59 good tip, thanks

  • @myadventure4046
    @myadventure4046 3 года назад

    What all are bored in quarantine and learning to code (as a kid)

  • @LorenzoEnzooey
    @LorenzoEnzooey 3 года назад

    Your videos really help developers, youre awesome dude

  • @cas818028
    @cas818028 3 года назад

    I didn’t see in any of those advanced or pro versions typescript!

  • @oussamakhalfi1751
    @oussamakhalfi1751 3 года назад

    20:00 PLEASE!!! why he's saying that we're getting the copy not the reference in the selectedTodo state
    Does not setSelectedTodo(todos.find(todo => todo.id === todoId)) set the reference of the todo that we found with todos.find(...) in the selectedTodo state????
    if no then why????

  • @rohangaonkar8912
    @rohangaonkar8912 3 года назад +1

    Perfect way of teching. We are lucky to get this content free

    • @shivanigaddagimath6105
      @shivanigaddagimath6105 3 года назад

      Hi Rohan! Are you looking to explore web development job opportunities currently? We are a web development company and looking for developers. Let me know if interested!

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

    i’d argue against defaulting to useMemo as it has its own overhead that isn’t really necessary. Only use memo when you need to, like you’re processing something complex.