How to Fetch Data in React With A Custom useFetch Hook

แชร์
ฝัง
  • เผยแพร่เมื่อ 22 ส.ค. 2021
  • In this video I will show how to make a custom useFetch hook in react. The hook allows you to fetch data from an api both on render and lazily.
    API: v2.jokeapi.dev/joke/Any
    Code: github.com/machadop1407/custo...
    🚀 Learn ReactJS By Building 6 Projects: codedamn.com/learn/reactjs-pr...
    Social
    ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
    Website: machadopedro.com
    Linkedin: / machadop1407
    Instagram: / _pedro.machado_
    Github: github.com/machadop1407
    Email: machadop1407@gmail.com
    Tags:
    - ReactJS Tutorial
    - ReactJS and MySQL
    - NodeJS Tutorial
    - API Tutorial
  • วิทยาศาสตร์และเทคโนโลยี

ความคิดเห็น • 175

  • @_boza
    @_boza 2 ปีที่แล้ว +5

    You are one of the TH-camrs who post real-life coding stuff that really helps! Thank you! :)

  • @ashishkumawat6110
    @ashishkumawat6110 ปีที่แล้ว +2

    The best explanation of using a custom hook so far... Hats off man.

  • @0x0abb
    @0x0abb 2 ปีที่แล้ว +62

    awesome work again - i am 52 years old - i am training to become a blockchain dev but now i am hooked on react which is still essential for blockchain work - i am inspired by guys like yourself - you guys are genius!!

    • @waifufx
      @waifufx 2 ปีที่แล้ว +2

      Well done sir

    • @mohshinmostafa3900
      @mohshinmostafa3900 ปีที่แล้ว +1

      You are awesome too!

    • @saugatrajbhandari4247
      @saugatrajbhandari4247 ปีที่แล้ว +2

      These type od comments motivates me

    • @aryankumar87771
      @aryankumar87771 ปีที่แล้ว +1

      not worth it learning it at 52, seriously not worth it..... unless you're totally insane or 1 in a million genius quick learner

    • @Uixxxam
      @Uixxxam ปีที่แล้ว +4

      @@aryankumar87771 Let other people do what they want to do

  • @Shaunmcdonogh-shaunsurfing
    @Shaunmcdonogh-shaunsurfing 2 ปีที่แล้ว +3

    The refetch was gold! Thank you man!

  • @capitaoisma
    @capitaoisma 2 ปีที่แล้ว

    Thank you very much for the video, after struggling to fetch some data from an API that I created, finally nailed it thanks to your help!!!!!

  • @blockanese3225
    @blockanese3225 2 ปีที่แล้ว +5

    Thank you for teaching me react! I’ve been watching your videos for a few months now and have learned more here than I have in college.

    • @BobbyBundlez
      @BobbyBundlez 2 ปีที่แล้ว

      yet all these jobs want college graduates. this whole industry is honestly retarded these days.

    • @kevyyar
      @kevyyar 2 ปีที่แล้ว

      They tech react in college?

    • @blockanese3225
      @blockanese3225 2 ปีที่แล้ว

      @@kevyyar yes and angular.

  • @michaelchinye7993
    @michaelchinye7993 2 ปีที่แล้ว

    Thanks so much man. I really needed to know how to use custom hooks in callback function and you have just made it easy for me. Thanks

  • @digender
    @digender 2 ปีที่แล้ว +6

    This is great. I recently switched from Angular to react and was wondering, how to seperate http from component as in angular we have services, here we have custom hooks to take care of it. Great tutorial bud😃

  • @TheNamesJT
    @TheNamesJT 2 ปีที่แล้ว +5

    Really good video my dude, didn't know you could return a function and call it like that. Very useful keep these react tricks coming. I would like to see some more real life examples of custom hooks so maybe you could make a custom hook series.

  • @JoaoPiovensan
    @JoaoPiovensan 2 ปีที่แล้ว +1

    First video that i watch of this channel and already loved it, keep making the good work mate

  • @brandonp611
    @brandonp611 2 ปีที่แล้ว

    Thanks so much for the tutorials. They have been helping me alot. The crud tutorial with mysql helped me understand the connection between the client and server files. Thanks keep doing what you do.

  • @wilber3015
    @wilber3015 ปีที่แล้ว

    Wow! Thanks Pedro, by watching this video in just 16 min I was able to learn a lot about React & APIs

  • @dane-xmusic
    @dane-xmusic ปีที่แล้ว

    Dude, Thanks much, been searching for this for hours!

  • @bekzatmurat1341
    @bekzatmurat1341 ปีที่แล้ว

    Thank you bro. I knew about custom hooks. But i didn't use it. That was really cool. I will be using it on every project from now on.

  • @nehanagda8888
    @nehanagda8888 11 หลายเดือนก่อน

    Thankyou so much for the explanation. I have watched your video for the first time and you explained really well that I subscribed your channel immediately after the video finished.

  • @cassiosalvador7961
    @cassiosalvador7961 ปีที่แล้ว

    Very good and concise explanation, thanks for that!

  • @kakhabervk9405
    @kakhabervk9405 ปีที่แล้ว

    Good explained use api call with custom hooks. Thank you!

  • @dezinhtang
    @dezinhtang 2 ปีที่แล้ว

    Great Explanation.I love the way you teach

  • @denniszheng7827
    @denniszheng7827 2 ปีที่แล้ว

    Thanks for your course, it's helpful.

  • @ThColinPereira
    @ThColinPereira 2 ปีที่แล้ว

    Exactly what I was looking for!

  • @KC-hl4oj
    @KC-hl4oj 6 วันที่ผ่านมา

    Really great tutorial - thanks soooooo very much!

  • @k303k
    @k303k ปีที่แล้ว

    thanks a lot for the video pedro!

  • @marinasatsyk2184
    @marinasatsyk2184 2 ปีที่แล้ว

    Tnak tou very mutch! Your explanations helped me a lot!

  • @minnuss
    @minnuss 2 ปีที่แล้ว

    Great video ! Clever and simple code, love it !

  • @_h4x0r
    @_h4x0r ปีที่แล้ว

    Thank you, Pedro!

  • @balgrimesart564
    @balgrimesart564 ปีที่แล้ว

    really nice tutorial! following right now to see more of these 😀

  • @exacode
    @exacode ปีที่แล้ว

    Thanks man, this was very good

  • @AkashDas-vh4ru
    @AkashDas-vh4ru ปีที่แล้ว

    Excellent brother! Keep it up.💙

  • @cybertechzen5411
    @cybertechzen5411 2 ปีที่แล้ว

    Tnx man it really helped keep it up

  • @nauni07
    @nauni07 2 ปีที่แล้ว

    Awesome explanation

  • @JuliaMaschion
    @JuliaMaschion ปีที่แล้ว +1

    I loved your channel! Already subscribed !

  • @bear-code
    @bear-code 2 ปีที่แล้ว +1

    thank you man , you are legend

  • @d-landjs
    @d-landjs ปีที่แล้ว

    Excellent info bro!!!

  • @shashankshekharsingh6076
    @shashankshekharsingh6076 2 ปีที่แล้ว

    Simply lucid 👍🙏🏻

  • @borrokatu3656
    @borrokatu3656 2 ปีที่แล้ว

    you explains conceps very well

  • @milosnikolic4282
    @milosnikolic4282 2 ปีที่แล้ว

    What a beutiful solution! Great video, it helped alot!

  • @progremeramatir
    @progremeramatir 2 ปีที่แล้ว

    Very good tutorial

  • @franco.delcas
    @franco.delcas 2 ปีที่แล้ว +1

    Cool stuff! thank u

  • @FadlySansan
    @FadlySansan 2 ปีที่แล้ว

    thank you so much. I think I can move on from class & redux using this to make action and handle my state

  • @anbhuonline
    @anbhuonline 2 ปีที่แล้ว

    Simple and easy 👍

  • @GabrielSouza-sl8vp
    @GabrielSouza-sl8vp 2 ปีที่แล้ว +5

    Great vídeo again!
    It would be interesting to bring some videos of React using Typescript too.

  • @Markdim7
    @Markdim7 2 ปีที่แล้ว +1

    That was a very useful video! I am doing my final project for my degree, which includes some data fetching from facebook and this will be very useful

    • @PedroTechnologies
      @PedroTechnologies  2 ปีที่แล้ว

      Using a premade hook will improve the code quality! Good luck in the project :)

  • @sonamohialdin3376
    @sonamohialdin3376 2 ปีที่แล้ว

    So good tutorial very useful

  • @zeddscarlxrd4331
    @zeddscarlxrd4331 ปีที่แล้ว

    Awesome dude thankssss

  • @freemenclub
    @freemenclub 2 ปีที่แล้ว

    Great, thanks!

  • @Xtopherization
    @Xtopherization 2 ปีที่แล้ว

    thanks for the tutorial and github repo ... you're the best! are you planing on doing an updated one with the async/await with the new features of react 18 ?

  • @Dipenparmar12
    @Dipenparmar12 2 ปีที่แล้ว

    Amazing hook...

  • @Pareshbpatel
    @Pareshbpatel 2 ปีที่แล้ว +1

    Excellent tutorial on fetching data using a custom react hook. Thanks, Pedro
    {2022-02-14} , {2022-02-18}, {2023-08-06}

  • @agustinperez8700
    @agustinperez8700 2 ปีที่แล้ว

    Nice video brou, I'm going to make my own implementation in typescript for my app

  • @bastienv6233
    @bastienv6233 ปีที่แล้ว

    Thank again for your Nice content

  • @usmanirevo895
    @usmanirevo895 2 ปีที่แล้ว +1

    Awesome video, well explained

  • @jobhatti
    @jobhatti 2 ปีที่แล้ว +1

    Awesome stuff keep it up!

  • @diego0ji
    @diego0ji ปีที่แล้ว

    Superr

  • @khurshed780
    @khurshed780 2 ปีที่แล้ว +1

    Great video plz keep it up 🚀

  • @abhishekmishra9841
    @abhishekmishra9841 2 ปีที่แล้ว +1

    Your tips helpful for us thank you brother more like this ❤️🙏

  • @Lunolux
    @Lunolux 2 ปีที่แล้ว

    Great video

  • @EK-rp8jp
    @EK-rp8jp 2 ปีที่แล้ว

    super useful! thanks a lot:>

  • @devinosborne3396
    @devinosborne3396 2 ปีที่แล้ว

    Great video! How would you recommend making multiple calls in the same component?

  • @abdoulayendiaye1656
    @abdoulayendiaye1656 2 ปีที่แล้ว

    YOU ARE AMAZINGGGGGGGGGGG

  • @abhaytiwari6411
    @abhaytiwari6411 2 ปีที่แล้ว +1

    Splendid video 👍

  • @S--xc4rv
    @S--xc4rv 8 หลายเดือนก่อน

    Always precise 🔥, i have a doubt that instead of creating another fxn we can pass a variable as the dependencies of useEffect so whenever the btn got clicked , new joke gets fetched

  • @piotrszczesniak685
    @piotrszczesniak685 2 ปีที่แล้ว

    awesome tutorial. the only this I didn't get is the notation { date?.setup }

  • @mahmoudk528
    @mahmoudk528 2 ปีที่แล้ว

    you are amazing!

  • @TheMeepPlay
    @TheMeepPlay 2 ปีที่แล้ว

    Thanks!!!

  • @hamdskid
    @hamdskid ปีที่แล้ว

    U saved my life 😂😂

  • @brenongr
    @brenongr 2 ปีที่แล้ว

    Valeu, man!

  • @evanvana1485
    @evanvana1485 2 ปีที่แล้ว +3

    Great video! What theme are you using in VS Code?

  • @Dev-Phantom
    @Dev-Phantom 22 วันที่ผ่านมา +1

    cool

  • @sanuyadav-ys3fb
    @sanuyadav-ys3fb ปีที่แล้ว

    Thank you so much bro. Pleas econtinue to make such video

  • @subhashgn1775
    @subhashgn1775 2 ปีที่แล้ว +1

    Very Well explained.👌
    Thank you🤝
    How to handle multiple API calls in single component?

    • @devinosborne3396
      @devinosborne3396 2 ปีที่แล้ว

      I also have this question. I believe the way you can is by simply naming the arguments differently. Which is messy, but still possible.:/

  • @augischadiegils.5109
    @augischadiegils.5109 ปีที่แล้ว

    nicee

  • @Mercio2
    @Mercio2 2 ปีที่แล้ว

    nice

  • @pikolq7665
    @pikolq7665 2 ปีที่แล้ว

    we need next js full course

  • @eliasantagiuliana6379
    @eliasantagiuliana6379 2 ปีที่แล้ว

    I have a double null response before the correct one if for example I console.log the data

  • @luismarquez6653
    @luismarquez6653 2 ปีที่แล้ว

    awesome tutorial! How can I use it on a component?

  • @JasonWee
    @JasonWee 2 ปีที่แล้ว

    ROFLMAO... the api jokes is SOOOOOOOOOOOOOOOOOOOOOOOOO FUNNY

  • @TheNamesJT
    @TheNamesJT 2 ปีที่แล้ว +1

    Hey pedro could you make a video where you use an api that asks for header and rate limits? because can't seem to find a video online that teaches how to follow an api requirements of use. Its all these simple api's that has no prerequisites/restrictions. Basically, how to use an api with oauth2 & rate limiting?

  • @TheWolverine1984
    @TheWolverine1984 2 ปีที่แล้ว

    Hey, what plugins one needs to use to make VS code look like that? I mean themes/icons

  • @chiranjibikarki8049
    @chiranjibikarki8049 2 ปีที่แล้ว +2

    Hi Pedro, just a small enquiry about reusing the useFetch custom hook as shown to fetch the data. Suppose if we have a page which has multiple components that needs data from different APIs and in this case can useFetch hook be reused by all components at a same time? Because useFetch can receive an single url at a time and has single loading and error states, how can this be possible? or if can be reused at a same time then copies of useFetch hook is created in the memory to serve the purpose?

    • @ApartTour
      @ApartTour 11 หลายเดือนก่อน

      yeah you can reuse it, just make sure to give the values that are returned from the hook different names so you don't have a conflict. You can do so like this:
      const { data: usersData, loading: usersLoading, error: usersError, refetch: usersRefetch } = useFetch(...)
      this way you're still destructuring the variables you get from the hook, but give them different names

    • @chiranjibikarki8049
      @chiranjibikarki8049 11 หลายเดือนก่อน

      @@ApartTour Thanks for your information

  • @yusufahmed3678
    @yusufahmed3678 11 หลายเดือนก่อน

    I was wondering if this would cause memory leaks when there are 2 or more components using the usefetch hook, but with different API endpoints.

  • @mohamedyoussef8835
    @mohamedyoussef8835 2 ปีที่แล้ว

    Awesome +++++++++++++++++++++++++++++

  • @thijs9339
    @thijs9339 2 ปีที่แล้ว

    Hi Pedro thanks for the tutorial! Just a little question what extension do you use for auto tabbing your code and automatically adding a ";"?

    • @PedroTechnologies
      @PedroTechnologies  2 ปีที่แล้ว

      Hey, the extension is prettier!

    • @coskuncabuk3119
      @coskuncabuk3119 2 ปีที่แล้ว

      @@PedroTechnologies Thanks for this excellent videos. Although I find your video very useful nad clever, the jokes that API link display are clearly offensive for gays, blacks and Jews. I would recommend you use different API resources for teaching coding.

  • @johannsebastianbach3411
    @johannsebastianbach3411 2 ปีที่แล้ว

    In fact this is how react-query was invented by Tanner Linsley!

  • @MizManFryingP
    @MizManFryingP 2 ปีที่แล้ว

    How would you handle a situation where you are constantly polling data? When I do that, the screen flashes for a second because for a split second there while the information hasn't arrived yet, the UI cannot be displayed.

  • @princenarteh8822
    @princenarteh8822 2 ปีที่แล้ว +2

    Great video! But what if you want to post data. How can you go by? I will appreciate if you can do a video on it. Thank you.

    • @PedroTechnologies
      @PedroTechnologies  2 ปีที่แล้ว +1

      You can do the same thing, but also put an argument to the hook that represents the body of the post request :)

  • @mwnkt
    @mwnkt 2 ปีที่แล้ว

    I didn't know where to look for this, but how can I fetch more data whenever I'm close to the bottom of the page? ie whenever you scroll super fast to the bottom on TH-cam you can see more videos being loaded.

  • @qweqw1359
    @qweqw1359 ปีที่แล้ว

    Noice

  • @brunomorais4129
    @brunomorais4129 ปีที่แล้ว

    how can I make the hook more dynamic by receiving the method by parameter?

  • @elinev7830
    @elinev7830 2 ปีที่แล้ว +1

    Could U explain how to do post or delete call, in the same custom hook?

    • @havelboumbidi440
      @havelboumbidi440 2 ปีที่แล้ว

      I have been searching for the same thing. have you found anything? if yes could u share please?

  • @moylababa8196
    @moylababa8196 2 ปีที่แล้ว +1

    please continue the graphql series

    • @PedroTechnologies
      @PedroTechnologies  2 ปีที่แล้ว +1

      I will continue, I want to post some other stuff in between as well! Next gql episode is already recorded and will come out tomorrow!

  • @divagesh
    @divagesh ปีที่แล้ว

    what if we want to call multiple url /api in a component ?

  • @marcossequeira5433
    @marcossequeira5433 ปีที่แล้ว

    its not much easy to instance the setLoading in true in the useState instead inside the useEffect?

  • @abdulrahmanmamdouh7488
    @abdulrahmanmamdouh7488 ปีที่แล้ว

    can we expand this to support different API calls like post, put, and delete?
    maybe make it useAPI ?
    I'm not sure because then we will need to call the hook using some conditions and that doesn't work with hooks

  • @alphatomy8613
    @alphatomy8613 2 ปีที่แล้ว

    thanks man youre doing a great job

  • @JaredFL
    @JaredFL 2 ปีที่แล้ว

    Since you are returning at the end of the useFetch function, your component that calls useFetch will never see the loading state until it is true.

  • @sanjeebgochhayat6911
    @sanjeebgochhayat6911 ปีที่แล้ว

    is there a way to perform post request with this useFetch custom hook

  • @khurshed780
    @khurshed780 2 ปีที่แล้ว +1

    Would I request you to share a folder structure for e-commerce project with admin panel and frontend for nextjs

    • @PedroTechnologies
      @PedroTechnologies  2 ปีที่แล้ว +1

      I have a video going over an advanced folder structure for a react app! I would follow something like that :)

    • @khurshed780
      @khurshed780 2 ปีที่แล้ว

      @@PedroTechnologies thanks for quick reply,
      yes I have seen that
      I want to implement two theme
      Admin panel and frontend in same src folder

  • @georgechong5065
    @georgechong5065 ปีที่แล้ว

    Is it possible to redirect to error page in usefetch hook???

  • @mohammadyaseenshaik4325
    @mohammadyaseenshaik4325 ปีที่แล้ว

    The api is having payloads then how to set in custom hook

  • @mohammadyaseenshaik4325
    @mohammadyaseenshaik4325 ปีที่แล้ว

    How to call that api again if the state is changed