React Hooks Tutorial - 26 - useCallback Hook

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

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

  • @lukemuga434
    @lukemuga434 4 года назад +188

    The way you break down complex concepts into clear and concise explanations that are very easy to understand is just amazing. Keep up the good work

  • @quanhglam
    @quanhglam 3 года назад +8

    “The question you might have is …” satisfies me every time. Very thoughtful videos.

  • @jsnjocsin
    @jsnjocsin 3 года назад +8

    I've been starting learning react just this week and this video helps me understand one of the fundamentals of React in a clear and understandable way. Kudos to the author of this tutorial, keep up the good work!

  • @coder_monkey
    @coder_monkey 4 года назад +10

    Dude, this one is super cool. The way you explain the stuff is far better. I wish you could have written the React docs.

    • @Jason-uv5tm
      @Jason-uv5tm 3 года назад +1

      Honestly, though there is nothing wrong with react docs because if you are learning react correctly, you should know what a dependency list is (from useEffect), and if you know javascript, then you should know what callbacks are. Only my opinion though, you do you.

  • @kaveenhyacinth
    @kaveenhyacinth 3 года назад +4

    I was seeking an extensive explanation for useCallBack hook. I found it today! You are amazing bro 💙

  • @nickstaresinic9933
    @nickstaresinic9933 4 года назад +3

    All videos in this series are very well organized and presented. The explanation in *this* particular video is the clearest I've come across on using Memo & useCallback to prevent unnecessary re-renders. Thanks.

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

    the best version of explaining useMemo & useCallback Hook!

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

    Concise and actionable. This here is an textbook example for how tech tutorials should be.

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

    The way you explain the use cases and why and in which condition we must use certain things is just amazing. It's easy to learn concepts from you.

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

    Learned React easily with your concepts; you saved lot of hours to invest learning topics.

  • @craft99
    @craft99 4 года назад +3

    Breaking down that sentence was incredibly helpful. Thank you.

  • @prakhar2806
    @prakhar2806 4 года назад +1

    Have been having problem for a long time understanding the concept before this very video.
    The simplest explanation. thanks for the great video

  • @pannihto7588
    @pannihto7588 4 года назад +5

    The best explanation I've seen so far. Thank you

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

    its worth it to watch your videos after 3 yrs of uploaded concept are clear

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

    I recommend reading the article he put in the description.

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

    the best simplified content you can see for useCallback hook ! 👋

  • @drewstifler1440
    @drewstifler1440 4 года назад +22

    You can optimize it more by passing the updater function as the dependency
    const incrementAge = useCallback(() => {
    setAge(age=> age + 1)
    }, [setAge])
    Result: Rendering Age
    PS: it also work without dependency

    • @abhijeetmaurya7355
      @abhijeetmaurya7355 4 года назад

      Can you point out to the source from where you read about it.

    • @drewstifler1440
      @drewstifler1440 4 года назад +1

      @@abhijeetmaurya7355 react official docs usecallback.

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

      Even no need to pass "setAge" as a dependency, because it is not the argument of the inner callback function.
      const incrementAge = React.useCallback(() => {
      setAge((prevAge) => prevAge + 1);
      }, []);

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

      @@asananddevsingh i already said that

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

      @@drewstifler1440 Yeah, You are Right.

  • @singleren
    @singleren 4 года назад +3

    The best explaination on useCallback so far

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

    definitely the best lecture I've ever watched! Thx!

  • @user-mo3cw6go7c
    @user-mo3cw6go7c 3 года назад

    Take a complex and scary subject and make it really simple
    You deserve to be appreciated

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

    Thanks! I really appreciate your work!

  • @ionitaa
    @ionitaa 5 лет назад +21

    Great videos. Please do a component test series after hooks!

  • @sarahwbs
    @sarahwbs 5 лет назад +3

    Great explanation of Memo and useCallback! Very thorough and clear.

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

    Thank you for making this hook easy to understand!! I don't know what, but I was having trouble understanding this one, but your simple, clear example was just perfect! I looked at like 6 other videos, and yet this one clicked with me. You just got a new subscriber!

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

    I really appreciate your logic and hard work. I got stuck in my project and needed to come and understand why it was designed like that. Then your explanation enlightens me with easy examples. You should earn millions of subscriptions.

  • @LuisPintado
    @LuisPintado 4 года назад

    I have seen other videos that cover this topic, but it is in this one that I really understood how it works. Thank you!!

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

    You are an amazing tutor. The way you explain the concepts are just amazing. Really helpful.

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

    Not going to lie, this one may took me a few times to rewatch to get my head wrapped around.

  • @PriyankaSingh-vm4kv
    @PriyankaSingh-vm4kv 3 года назад

    No words to describe how easily you explain this concept 👏👏👏

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

    Great stuff! Its near impossible to find people who can explain complex topics with such clarity

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

    Great. I became clear in this topic after viewing this video

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

    This is the best video I have seen on useCallback. Thank you so much!!

  • @Mohamed-M-M
    @Mohamed-M-M 4 года назад +3

    Very informative & well explained in detail, Your way of teaching is amazing, thank you.

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

    One of best explanation skills I have come across

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

    Crystal Clear explanation ❤

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

    excellent explanation, new function is created each rerender, and to solve that function should be memorized using a callback hook👏

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

    What an Explanation brother! Keep it up. You have amazing talent. Appreciate it.

  • @swingtradersindia
    @swingtradersindia 4 года назад

    This is the best explanation..I never comment on any youtube video but This video was really awesome.

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

    This is how to explain useCallback. Just Perfect.

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

    This way will prevent the re-rendering of buttons too.
    const incrementAge = useCallback(() => {
    setAge((prevAge) => prevAge + 1);
    }, []);

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

      How is this happening

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

      @@harshalsingh2443 This is because, I've removed the dependency of useCallback i.e age and using function while updating the state of age, it will automatically give me previous state of age. Remember here handler function is not dependent on age.

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

    Thanks for the video really explains the concepts well. I hope you are doing this way to convey the concepts. If you separate salary and age as a different component with its own state, there is no need of memo or callback. You should have mention these kind of tips at the end. Most of us watching the tutorials are beginners while explaining the concepts if you include best practices also would be really helpful. Thanks..!!

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

      This was just an example! Think of a complex application with multiple child components.

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

    The way you are explaining is awesome thank you so much for sharing this video and your knowledge.

  • @HarshSingh-hk8fe
    @HarshSingh-hk8fe 2 года назад

    this is the best explanation of this hooks , now i know how its working

  • @pashapear8795
    @pashapear8795 4 года назад +6

    Thank you! This was very informative and well explained.

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

    First time I understand useCallback thanks brother

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

    you are a real teacher, thank you for this tutorials

  • @Jason-uv5tm
    @Jason-uv5tm 3 года назад +4

    By the way, can we stop with the useless comments saying how good the series is? Sorry to sound mean, but when I'm trying to get help, these comments really aren't helping. They are good, but please just stop and think if your comment would really help other people.

    • @Ahmed-fq3kz
      @Ahmed-fq3kz Год назад

      I really have the same thought, but i'm answering myself that it is just some tax i will afford for a free content because he get benefits from such comments

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

    Another place you might want to implement useCallback is to maintain referential equality to functions passed into the dependency array for useEffect, etc.

  • @tiagocunhafernandes6607
    @tiagocunhafernandes6607 5 лет назад

    Very good example. I love see logs to check performance issues!!!

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

    Easy to understand because of the good explanation! Thank you

  • @aladouagi1388
    @aladouagi1388 5 лет назад +9

    Passing 'age' and 'salary' to the dependencies array of useCallback is not required, there is no specific reason that should make do that, in fact, it increases the amount of unnecessary re-renders of the component..

    • @Codevolution
      @Codevolution  5 лет назад +16

      Like I mention in the video, it is to explain the concept..

    • @TheGryphon14
      @TheGryphon14 4 года назад

      It is required due to closure. Unless you use an updater function.

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

    we can avoid button re-renders too! remove age as dependency!

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

    The best content ever

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

    Thank you, Vishwas. Really great explanation.👌👌👌👌👌

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

    I love your content..You explain concepts in such an easy manner!
    Happy to have found your channel! :)

  • @benny-shen
    @benny-shen 4 дня назад

    great explanation

  • @jorgericaldi6438
    @jorgericaldi6438 4 года назад +1

    omg, you explain like god. Really easy to understand you man. thanks so much :)

  • @mytech-youtube8436
    @mytech-youtube8436 Год назад

    Amazing explanation!

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

    Greatly explained

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

    Amazing explanation.

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

    Codevolution Your just the best

  • @Jason-uv5tm
    @Jason-uv5tm 3 года назад +1

    The dependencies list, according to codesandbox is not needed. If for example, I make the dependency list an empty array ([]), then only the salary is rendering, and everything is fine. Using age or salary inside the dependency list is bad because the button will still be redefined every single time. Why is this?

  • @neerajyadav1522
    @neerajyadav1522 5 лет назад

    Really nice explanation of useCallback hook. I knew about other hooks, but this was alien to me, but you explained it really well. Subscribing for the explanation.

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

    Totally got with the callback concept thank you

  • @AMANKUMAR-jc2fz
    @AMANKUMAR-jc2fz Год назад

    Great Man thanks 👍 really today I understand the way to use these 😁

  • @romanbiliavskyi8413
    @romanbiliavskyi8413 4 года назад +1

    To make just one rerender and not two : const increnementAge = useCallback(()=>setCount( c=> c+1), [setCount])

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

      I think empty arraay [ ] is also good enough.

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

    Very good understanding.

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

    Best explanation I’ve seen, thanks!

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

    Thank you very much explaining the concept in a easy way :)

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

    awesome as always

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

    Really great video!!! I learned a lot in these 15 Minutes!

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

    Awesome explanation!! Thank you very much :)

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

    Awesome explaination

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

    Such a good way of teaching!

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

    Great Explanation

  • @7huannp
    @7huannp 4 года назад

    Excellent. Only this video makes everything clear for me. Thanks

  • @VishalSharma-rn7mt
    @VishalSharma-rn7mt 3 года назад

    Awesome, explanation

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

    awesome Explanation and thanks for the blog 🔥

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

    Bhaiya mauj aagyi maa kasam

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

    Your videos are great. I would like you to pass function to setState and don't use any dependency in useCallback, so that only the age and salary component will be rerendered and the buttons will not be rerendered.

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

    11:25 I need this timestamp because I watch this video multiple times

  • @AvinashRathod
    @AvinashRathod 4 года назад +1

    Very well explained , thank you.

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

    Great one🤩

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

    I love your videos!

  • @MuhammadAhmed-wb2sq
    @MuhammadAhmed-wb2sq 2 года назад

    thanks for those videos.

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

    thank u for a great and well-explained video!

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

    What amazing video! This is great man!

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

    Learned an important lesson about performance. Thanks a lot. But I think its not exactly optimized even with the use of useCallback() because the button is also being re-rendered even though only callback function has changed.
    I understand that its passed as a prop and when props change, the component re-renders... but when you look at the UI, the button remains the same... it doesn't need to be re-rendered.
    Will look deeper into this. Thanks.

  • @mathearts9739
    @mathearts9739 4 года назад

    explained clearly new subscriber here thank you very much

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

    I learned so much, thanks !

  • @atikhashmee2009
    @atikhashmee2009 4 года назад

    excellent explanations. thank you so much for your effort

  • @facundovega1726
    @facundovega1726 4 года назад

    EXCELLENT EXPLANATION!!

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

    Really helpful

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

    Really quality stuff. I just have 1 update request. at 10.35 you compare incrementAge and incrementSalary function saying they are not the same which I believe everyone knows already. What I think you missed is that JS (not react) creates different instance/reference of both incrementAge and incrementSalary function at every render. Meaning, the same function declaration has 2 different references in 2 different renders. And that's where useCallback comes into play.
    Feel free to correct me if I am wrong.

  • @jain.sachin
    @jain.sachin 3 года назад +2

    I am having one concern with this solution, why even my button component render?
    We can overcome with this issue by setState(state=> state+1) and no dependency
    So at the end only state will be updated value so value print component will render

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

      you already get the answer sir?

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

    Holy shieeet, I thought memo was the same as useMemo

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

    Thankyou

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

    Thank you

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

    the performance optimization:
    the problem: in App there are several components, when one componenr is re-rendered, others will be re-rendered as well -> nicht optimal
    useMemo
    - refenrence equality for a function
    - we should not always use the callback function

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

    useCallback:
    - in short: whenever a component re-renders (which will occur if its state/prop changes or unmount/mount), the states/functions inside it will also be created newly (new instances). So if these states/functions (which got new instances - aka this is meaning changed) - are passed as a prop to any child components, inside this parent component, it will trigger the child component to be re-rendered as well. Thats why useCallback & React.memo are used.
    - Performance Optimization
    -> useCallback( arrowFunction, arrayOfDependentprop )
    chatgpt: Why using a useCallback all the time is not a good idea?