Learn React Hooks: useCallback - Simply Explained!

  Рет қаралды 69,053

Cosden Solutions

Cosden Solutions

Жыл бұрын

Join The Discord! → discord.cosdensolutions.io
Source Code → github.com/cosdensolutions/co...
In this video we will learn about React hooks, starting with useCallback. This powerful React hook will allow you to fix your performance problems by memoizing a function and only re-computing it when necessary. You will learn how to identify performance problems from functions causing sub-components to re-render, how to memoize the functions using React's useCallback hook, and how to use the dependency array to control exactly when and how your function updates.
In this new React world, hooks are here to stay, so it's best to learn them! In this tutorial I demonstrate the useCallback React hook, and I explain it very simply and in a way that is easy to understand. Enjoy!

Пікірлер: 189
@cosdensolutions
@cosdensolutions 2 ай бұрын
Hey everyone! I just launched 🚀 Project React, which is a course that teaches you React by building a real-world project. It goes way beyond what you see in these videos and walks you through step-by-step on how to build a big and complex application with React! You can check it out here: cosden.solutions/project-react
@heybran_
@heybran_ 11 ай бұрын
Best react educator found on youtube! Agreed everyone?
@arunkaiser
@arunkaiser 6 ай бұрын
I agree
@anabiatahir3772
@anabiatahir3772 6 ай бұрын
Agreed
@alidbouk4335
@alidbouk4335 5 ай бұрын
Absolutely !
@amalc7814
@amalc7814 5 ай бұрын
explains every thing in detail, crisp and clear
@prajwalpandeshwar9967
@prajwalpandeshwar9967 4 ай бұрын
Absolutely
@ahmadbenchakhtir5787
@ahmadbenchakhtir5787 13 күн бұрын
The truth is: i watched two tutorials about UseCallback from great people talking my native language -Arabic-, but i didn't get the whole idea properly. now i do. Thank u.
@amrhesham3135
@amrhesham3135 12 күн бұрын
زيك ي حبيب اخوك والله ❤✌️
@ahmadbenchakhtir5787
@ahmadbenchakhtir5787 12 күн бұрын
@@amrhesham3135 🤣🤣🤣🤣🤣🤣♥ مرحبا مرحبا
@ahmadbenchakhtir5787
@ahmadbenchakhtir5787 12 күн бұрын
@@amrhesham3135 🤣🤣🤣🤣🤣♥
@lexsemenenko7044
@lexsemenenko7044 10 ай бұрын
Clean and clear explanation with examples on what and why for us to clarify the ideas behind the hook. Again, nailed! Appreciated.
@JakeLuden
@JakeLuden 10 ай бұрын
Genuinely the best useCallback tutorial I’ve seen, probably the best video I’ve seen regarding hooks in general. Incredible explanation and demonstrations!
@cosdensolutions
@cosdensolutions 10 ай бұрын
damn, thanks for saying that! Really means a lot 🤙
@atomvandermerwe3613
@atomvandermerwe3613 10 ай бұрын
I 100% agree with @Jakezaruba, this video explained it perfectly.
@SWE507
@SWE507 2 ай бұрын
This is the cleanest and clearest explanation of useCallback ever!!!
@lagekutsa
@lagekutsa 3 ай бұрын
you explain useCallback so simple man, really appreciate.
@whiterabbitdev
@whiterabbitdev 5 ай бұрын
cheers dude, none of that "learn this in 3 minutes bs" you explain everything nice and clearly!
@CalltheWei1020
@CalltheWei1020 7 ай бұрын
Love how you explain the whys and what really happens behind the scenes. Thanks and much appreciated
@noahmilliken4259
@noahmilliken4259 3 ай бұрын
Props to Cosden for not bombarding us with some 15 second intro branding. Down to business, love it.
@chengxiaoxia8046
@chengxiaoxia8046 2 ай бұрын
You are a serious teacher. You tested your code truly before publishing this video, I think. I've read many articles about useCallback and their code did not work correctly coz they did not use 'memo'. Thanks so much. Your video brings us true value.
@learner8084
@learner8084 Ай бұрын
I didn't know about the memo either ! Thanks very much.
@gmjitendra
@gmjitendra 7 ай бұрын
you are very clear concept wise. No need to follow any other videos on react hooks. really liked all your videos. Thanks and much appreciated
@smokinjoe3000
@smokinjoe3000 3 ай бұрын
Just discovered these today - and they're so well presented! These are things I use at work every day and you've done such a great job in explaining the benefits and pitfalls of each of these react hooks! Definitely pointing any new engineer over to your channel to learn/understand them
@rajeshmaydev
@rajeshmaydev 2 ай бұрын
the words you picked "freeze in time". Really helped me wrap the idea of it after many months of doubt
@tingwen1713
@tingwen1713 3 ай бұрын
Hey! Just wanted to say that I've been going through your Learn React Hooks playlist and it's been so helpful. Thank you for making this content. You're a great educator!
@user-be3ri8gf1p
@user-be3ri8gf1p Ай бұрын
Best hooks tutorial I've encountered so far! Thanks 🔥
@uquantum
@uquantum 8 ай бұрын
Great video for React devs at any level. I'd forgotten that a React component that takes in a function from its parent will re-render even if the variables in that function haven't changed. Not obvious until you explained it so well. You also made it super simple and clear that useCallback memoizes a function like useMemo memoizes a variable, and that helps us minimize unnecessary re-renders.Thanks!
@cosdensolutions
@cosdensolutions 8 ай бұрын
makes me happy to hear!
@__shubhamtiwari
@__shubhamtiwari 3 ай бұрын
Bhai sahab matalab ekdam gajab padhaya yaar, dil jeet liya dost ❤
@shamimhossain551
@shamimhossain551 6 ай бұрын
Ahh! you make my day. Was in a maze whole day about the using of useCallback. You've just come up with a propper salvation. Thanks ❤
@shubham.verma-dev
@shubham.verma-dev 10 ай бұрын
Nicely explained. I tried to understand from other videos as well, but this is really good. Now I am done with my doubts.
@cosdensolutions
@cosdensolutions 10 ай бұрын
Happy to hear! 🤙
@oscardasilva971
@oscardasilva971 Жыл бұрын
The last example was very clever. Thank you sir.
@RaGa_BABA
@RaGa_BABA Ай бұрын
Just a small add @2:30, its not that in react functions are different, its that they are referenced type in js, very well explained, really helpful thankyou
@ProfessionalClickers
@ProfessionalClickers 9 ай бұрын
Finally I understood useCallback ❤️ Thanks a lot!
@catalincatalin4101
@catalincatalin4101 7 ай бұрын
We really needed someone make this hooks simple. Thanks
@vivekkumar-pc1xy
@vivekkumar-pc1xy 6 ай бұрын
Great video, well explained. Everything is now crystal clear
@Gangbuster74
@Gangbuster74 11 ай бұрын
By far this is rhe best explanation have watched many many tutorials, but you explained it in very simple terms 🎉ty
@cosdensolutions
@cosdensolutions 11 ай бұрын
Glad to hear it! 🤙
@manojmrpd
@manojmrpd 15 күн бұрын
You are really a great educator. The best react tutorials found on KZbin! Very Appreciated @Cosden Solutions
@coolme7437
@coolme7437 4 ай бұрын
Thanks, this really is my last useCallback tutorial.
@antimrevapati8992
@antimrevapati8992 3 ай бұрын
Thank you so much for making these easy to understand videos. The most important thing you did was first intruduce the problem and then explain what the topic is and how can we solve this issue using this topic, this is a wonderful strategy to follow. Thanks again!
@cosdensolutions
@cosdensolutions 3 ай бұрын
Thank you for the kind words ☺️
@kisuhara7844
@kisuhara7844 4 ай бұрын
literally the best react tutor thank you for your videos
@peirama2
@peirama2 5 ай бұрын
Man, i follow and watch the videos of many tech youtubers and i have seen a ton of tutorials from many of them. This single video is the best tutorial of any concept i have ever seen. Tons of respect!
@cosdensolutions
@cosdensolutions 5 ай бұрын
Thank you for the kind words!
@peirama2
@peirama2 5 ай бұрын
@@cosdensolutions thank you for the many “aha” moments
@radhiarahmani9523
@radhiarahmani9523 21 күн бұрын
Very well explained! Thank you so much
@viliuxsas
@viliuxsas 6 ай бұрын
I am happy that I found this channel! Thank you for very clearly explanation about React hooks and because of you I improved my knowledge.
@cosdensolutions
@cosdensolutions 6 ай бұрын
glad to hear it!!!
@vesa95
@vesa95 11 ай бұрын
Awesome explanation, man! very, very clever!
@fhkodama
@fhkodama 4 ай бұрын
Oh, finally a good explanation about this hook! You got a subscriber with this video! Thanks!
@Za-xh9tj
@Za-xh9tj 2 ай бұрын
Expected to learn useCallback, instead I learned how react rerender, memo, and usecallback works. Amazing.😄
@VijayVibhuteFlautist
@VijayVibhuteFlautist 4 ай бұрын
Love it! Appreciate the way you explained everything. ❤
@PradeepManek
@PradeepManek 29 күн бұрын
Thank you brother you explain this topic very well.
@attouyassine1056
@attouyassine1056 3 ай бұрын
Appreciate the way you explained it, thanks
@borameupai1792
@borameupai1792 2 ай бұрын
Your explain saved my life. U just got a new subscriber. Thanks.
@ahmetzeren6878
@ahmetzeren6878 6 ай бұрын
great explanation thank you. no blank spaces left
@aleksandrgolyk3787
@aleksandrgolyk3787 3 ай бұрын
Great explanation 🎉🎉🎉 i was so struggling with understanding this topic. Thank you🎉🎉🎉
@belkocik
@belkocik Жыл бұрын
Very clear explanation!
@briandacallos4234
@briandacallos4234 9 ай бұрын
I'm shocked how he explained it very well than anyone could. Automatic subs!
@cosdensolutions
@cosdensolutions 9 ай бұрын
Much appreciated! ☺️
@HenryBabbage
@HenryBabbage 9 ай бұрын
Awesome explanation. Thanks!
@WaseemAhmad-mf3wh
@WaseemAhmad-mf3wh 2 ай бұрын
Thank you for your clear explanation ❤
@dilshadazam880
@dilshadazam880 6 ай бұрын
You deserve atleast 1 million subscribers. Please keep making such videos
@Jam....
@Jam.... 6 ай бұрын
Excellent clear explanation thank you.
@ASOCMARCTKD
@ASOCMARCTKD Ай бұрын
Excellent explanation, thank you 😇
@diggerdog001
@diggerdog001 5 ай бұрын
15:32 When u put 'users' in arr dep i really thought them why we need use Callback if we started from where our problem starts. And you began explain 😀
@2029leandro
@2029leandro 2 ай бұрын
Perfectly explained!
@dylcodes
@dylcodes Ай бұрын
Great video, thank you!
@MudassirKhan-sx9jy
@MudassirKhan-sx9jy 8 ай бұрын
so clear. thank you ♥
@pythonbrothersandfamily
@pythonbrothersandfamily Ай бұрын
omggg Great explanation. Thank you bro
@SPribyt
@SPribyt 9 ай бұрын
Good job explaining!
@rgchroniclestv
@rgchroniclestv 8 ай бұрын
Really a big help. Thanks
@cat_demon4405
@cat_demon4405 9 ай бұрын
Underrated channel! subscribed
@legend_749
@legend_749 9 ай бұрын
awesome explaination, pls continue this series
@cosdensolutions
@cosdensolutions 9 ай бұрын
Will do!
@alangraton2000
@alangraton2000 7 ай бұрын
Dude, your channel is the bomb. Thanks for the vids ^-^
@tigranharutyunyan7674
@tigranharutyunyan7674 5 ай бұрын
Enjoyed very much
@abhinavdhama3014
@abhinavdhama3014 8 ай бұрын
Amazing explanation on hooks ❤❤❤❤
@cosdensolutions
@cosdensolutions 8 ай бұрын
glad you liked it!
@aliksayfullin3278
@aliksayfullin3278 3 ай бұрын
Great explanation 👍
@OXIDE777-is6gs
@OXIDE777-is6gs Жыл бұрын
Awesome man! thanks a bunch!
@badishammadache2922
@badishammadache2922 10 ай бұрын
Great explanation
@umairiqbal1483
@umairiqbal1483 8 ай бұрын
Thanks. It really helped.
@shabeeeb6400
@shabeeeb6400 7 ай бұрын
you earned a sub :) great explanation
@maryannegichohi7063
@maryannegichohi7063 4 ай бұрын
Amazing tutorial
@zul.overflow
@zul.overflow 3 ай бұрын
clean and clear 👍
@samahgad241
@samahgad241 5 ай бұрын
thanks alot, very happy to know your channel🌹
@atakan8570
@atakan8570 6 ай бұрын
best teacher ever
@sidkan9251
@sidkan9251 7 ай бұрын
you got a new subscriber thanks man
@haiderjaafer8164
@haiderjaafer8164 Жыл бұрын
Great to see you here I followed you on tiktok. So great work keep going forward
@cosdensolutions
@cosdensolutions Жыл бұрын
Nice! Thanks! Will do ☺️
@TheMakeupmonika
@TheMakeupmonika 10 ай бұрын
love you man ! thank you so much
@madehayoussof
@madehayoussof Ай бұрын
Amazing! thanks
@SahilKashyap64
@SahilKashyap64 4 күн бұрын
Thank you for this
@remix_me
@remix_me Жыл бұрын
you earned a new subscriber
@mostinho7
@mostinho7 3 ай бұрын
Done thanks clear explanation
@user-dq1to7hg2n
@user-dq1to7hg2n 23 күн бұрын
Excellent!
@mralextacy
@mralextacy 6 ай бұрын
awesome tutorial
@raymondmichael4987
@raymondmichael4987 11 ай бұрын
Thanks buddy 😊😊
@mobinhamidi4161
@mobinhamidi4161 Ай бұрын
Thanks ❤
@nyomansunima
@nyomansunima 8 ай бұрын
Good explaination. Now i know it
@cosdensolutions
@cosdensolutions 8 ай бұрын
glad to hear it!
@nayandey5010
@nayandey5010 6 ай бұрын
Great explanations sir the only concern is I watched 5 ads each containing 2 ads(which I can't skip) 😂😂😂
@INetreba
@INetreba 2 ай бұрын
brilliant
@anonim1468
@anonim1468 4 ай бұрын
If we add another state and update it still will get memoized component to rerender. This is because arrays are reference types in JS and in every component render it gets a new reference so you will get new reference for callback function as well
@smchap9474
@smchap9474 6 ай бұрын
To understand, with this particular example we did actually undo all the purpose of useCallvack since users will be different when shuffled, right?
@Akhillbj
@Akhillbj 10 ай бұрын
When you say, onChange prop is different from the previous do you mean like actual props of the searchProps or values of the existing props?
@cosdensolutions
@cosdensolutions 10 ай бұрын
the `onChange` function, although it's the same function that does the same code (values don't really matter here), it'll be considered different because it'll be a different instance of the function. Different instance means it's just a copy of the function, but it's not the same one in memory. So even though it looks the same and does the same thing, it is a separate entity, thus it will cause the props to evaluate as not equal
@giannizamora7247
@giannizamora7247 2 ай бұрын
One of the things I noticed at 15:05 is that 'alex' shows but If you typed "james" the console log users[0] would have still been alex and that's because before our input changed alex was the first person in that list.
@iamparmjeetmishra
@iamparmjeetmishra 26 күн бұрын
thanks
@VishalSharma-rn7mt
@VishalSharma-rn7mt 5 ай бұрын
Awesome
@joshikroshan5584
@joshikroshan5584 2 ай бұрын
Should we include event object in dependency array when we memoize event handlers? As it changes each time and we are using it in funciton body?
@cosdensolutions
@cosdensolutions 2 ай бұрын
nope, only what is created in a component and is used in the body needs to go there. Event objects are not created in any component.Also, even if you wanted to, you couldn't. You don't have access to the event object to put it there :D
@joshikroshan5584
@joshikroshan5584 2 ай бұрын
@@cosdensolutions thank you
@cordial
@cordial 7 ай бұрын
After you add 'users' as a dependency to the useCallback, if you press shuffle, would the search component still not rerender?
@cosdensolutions
@cosdensolutions 7 ай бұрын
Yes it does, but that is what you want. You don't want to prevent a render, you just want to control when it happens. So if there was another piece of state that would change, then it wouldn't re-render. You only want to re-render when what it depends on changes, and nothing else!
@cordial
@cordial 7 ай бұрын
@@cosdensolutions cheers. great video as always btw.
@djravelaw
@djravelaw 3 ай бұрын
If the user will click on shuffle , will the Search component re-render ? as we have passed users in dependency array of useCallback
@cosdensolutions
@cosdensolutions 3 ай бұрын
Yes it will
@satyamkumar6469
@satyamkumar6469 4 ай бұрын
I appreciate the effort you put to make this kind of understanding.❤👏 But i am confused at the last point when you added a dependency users to useCallback function which solves the search problem but won't this disturb the shuffle function also coz this is also updating the same users right? Which eventually created the probelm what we have seen at the first If am i wrong please correct me
@cosdensolutions
@cosdensolutions 4 ай бұрын
yes, but the goal is not to prevent re-renders, but rather to control them. If you add users, then you have to re-calculate everytime it changes. That's ok. However, if you add a new state variable and change that instead, then the useMemo will not run again. That's what we want, control
@harag9
@harag9 7 ай бұрын
I've watched a few useCallback vids now and started to understand it more and this has also helped a lot, thanks. However I was concerned near the end, because you put the dependency [users] on the call back the search was rendering all the time, yet the search doesn't care about the users, but if that search was an expensive component, why would you want it rendering all the time again? I understand the vid was mainly about the useCallback, but how would you now fix the end result to not update the search component every time... Sounds like a catch 22 situation. fix one thing, break another so to speak.
@ThepaytimeHD
@ThepaytimeHD 6 ай бұрын
This is an excellent point, I am also interested in finding a solution that solves this problem.
@snivels
@snivels Жыл бұрын
Does the old 'handleSearch' function get garbage collected when you click shuffle and it renders the Demo() component again? Like it's not just storing function after function in memory each re-render, is it?
@cosdensolutions
@cosdensolutions Жыл бұрын
It does, I wouldn't worry about the inner workings of React too much, it's already heavily optimized
@nitinmali7430
@nitinmali7430 3 ай бұрын
Thanks Cosden. One question. What's the difference example onChange={handleSearch} and onChange={()=>handleSearch()} ?
@cosdensolutions
@cosdensolutions 3 ай бұрын
they're the same, but the second way you'll have to pass all of the arguments manually, if you have some. If you pass it like the first way, they'll get automatically passed
@ahallock
@ahallock 4 ай бұрын
Thanks for this clear explanation. As a React beginner, I feel like the DX is pretty terrible. You have to litter your code with all these hooks and remember what's changing and where. I worked with Bacon.js before and the mental model is much better, in my opinion, for handling state changes over time. React feels like spaghetti to me.
@reactdev2838
@reactdev2838 6 ай бұрын
But there will be still an issue at the last i.e. onClick shuffle, It will still re-render the Search Component again because the user state will be updated. But all over, I really appreciate it because you're teaching with core concepts.
@cosdensolutions
@cosdensolutions 6 ай бұрын
The goal with this is not to prevent a re-render, but control when it happens. I mention it in the video. If user is a dependency, there's no way around it. The goal is to not have anything else cause a re-render through useCallback, which we did!
@reactdev2838
@reactdev2838 6 ай бұрын
@@cosdensolutions Understand, But I really like your video, one of the best tutorials I have ever seen...
@darkshadowgks
@darkshadowgks 4 ай бұрын
may I know where can i get the shuffle function? it's not in your github
Learn React Hooks: useContext - Simply Explained!
15:46
Cosden Solutions
Рет қаралды 119 М.
Learn React Hooks: useMemo - Simply Explained!
13:41
Cosden Solutions
Рет қаралды 74 М.
Маленькая и средняя фанта
00:56
Multi DO Smile Russian
Рет қаралды 4,8 МЛН
Cat story: from hate to love! 😻 #cat #cute #kitten
00:40
Stocat
Рет қаралды 8 МЛН
Joven bailarín noquea a ladrón de un golpe #nmas #shorts
00:17
The correct way to optimise React
11:29
Cosden Solutions
Рет қаралды 28 М.
Зачем на самом деле нужен хук useCallback
8:33
Михаил Непомнящий
Рет қаралды 37 М.
Learn React Hooks: useRef - Simply Explained!
12:42
Cosden Solutions
Рет қаралды 74 М.
Learn useCallback In 8 Minutes
7:50
Web Dev Simplified
Рет қаралды 440 М.
You Are Using useEffect Wrong
14:40
Cosden Solutions
Рет қаралды 29 М.
You might not need useEffect() ...
21:45
Academind
Рет қаралды 142 М.
Learn React Hooks: useReducer - Simply Explained!
13:48
Cosden Solutions
Рет қаралды 42 М.
Learn React Hooks: useEffect - Simply Explained!
14:07
Cosden Solutions
Рет қаралды 107 М.
The problem with useEffect
11:37
Cosden Solutions
Рет қаралды 30 М.