How to Fetch Data in React With A Custom useFetch Hook

Поділитися
Вставка
  • Опубліковано 18 гру 2024

КОМЕНТАРІ • 177

  • @0x0abb
    @0x0abb 3 роки тому +63

    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 2 роки тому +1

      You are awesome too!

    • @saugatrajbhandari4247
      @saugatrajbhandari4247 2 роки тому +2

      These type od comments motivates me

    • @aryankumar87771
      @aryankumar87771 2 роки тому +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 2 роки тому +4

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

  • @_boza
    @_boza 2 роки тому +5

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

  • @ashishkumawat6110
    @ashishkumawat6110 2 роки тому +2

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

  • @SockerDad
    @SockerDad 3 роки тому +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 3 роки тому

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

    • @kevyyar
      @kevyyar 2 роки тому

      They tech react in college?

    • @SockerDad
      @SockerDad 2 роки тому

      @@kevyyar yes and angular.

  • @capitaoisma
    @capitaoisma 3 роки тому +1

    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!!!!!

  • @wilberlopezbaez
    @wilberlopezbaez 2 роки тому

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

  • @Shaunmcdonogh-shaunsurfing
    @Shaunmcdonogh-shaunsurfing 2 роки тому +3

    The refetch was gold! Thank you man!

  • @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😃

  • @dane_x_music
    @dane_x_music Рік тому

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

  • @nehanagda8888
    @nehanagda8888 Рік тому

    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.

  • @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.

  • @JoaoPiovensan
    @JoaoPiovensan 3 роки тому +1

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

  • @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

  • @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}

  • @GabrielSouza-sl8vp
    @GabrielSouza-sl8vp 3 роки тому +5

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

  • @kakhabervk9405
    @kakhabervk9405 2 роки тому

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

  • @TheNamesJT
    @TheNamesJT 3 роки тому +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.

  • @brandonp611
    @brandonp611 3 роки тому

    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.

  • @Markdim7
    @Markdim7 3 роки тому +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  3 роки тому

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

  • @cassiosalvador7961
    @cassiosalvador7961 Рік тому

    Very good and concise explanation, thanks for that!

  • @JuliaMaschion
    @JuliaMaschion 2 роки тому +1

    I loved your channel! Already subscribed !

  • @borrokatu3656
    @borrokatu3656 2 роки тому

    you explains conceps very well

  • @FadlySansan
    @FadlySansan 3 роки тому

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

  • @elinev7830
    @elinev7830 3 роки тому +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?

  • @pale_matter
    @pale_matter 3 роки тому +3

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

  • @KC-hl4oj
    @KC-hl4oj 5 місяців тому

    Really great tutorial - thanks soooooo very much!

  • @agustinperez8700
    @agustinperez8700 2 роки тому

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

  • @balgrimesart564
    @balgrimesart564 2 роки тому

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

  • @micekandy8742
    @micekandy8742 3 роки тому +1

    Could you explain to me what it means in the code question mark and dot, like here: joke?.setup

    • @PedroTechnologies
      @PedroTechnologies  3 роки тому

      It basically means that if the joke variable is null (meaning that the data from the api hasn't arrived yet) you then don't access the setup field since it wont exist.

    • @micekandy8742
      @micekandy8742 3 роки тому

      @@PedroTechnologies Thank you :)

  • @AkashDas-vh4ru
    @AkashDas-vh4ru Рік тому

    Excellent brother! Keep it up.💙

  • @princenarteh8822
    @princenarteh8822 3 роки тому +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  3 роки тому +1

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

  • @marinasatsyk2184
    @marinasatsyk2184 2 роки тому

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

  • @love_hunter_coc
    @love_hunter_coc 3 роки тому +1

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

  • @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 Рік тому

      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 Рік тому

      @@ApartTour Thanks for your information

  • @yusufahmed3678
    @yusufahmed3678 Рік тому

    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.

  • @dezinhtang
    @dezinhtang 3 роки тому

    Great Explanation.I love the way you teach

  • @piotrszczesniak685
    @piotrszczesniak685 2 роки тому

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

  • @denniszheng7827
    @denniszheng7827 3 роки тому

    Thanks for your course, it's helpful.

  • @santa6379
    @santa6379 2 роки тому

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

  • @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 ?

  • @sinaukode
    @sinaukode 3 роки тому

    how about post, or delete request??, do we need to create more hook???

    • @PedroTechnologies
      @PedroTechnologies  3 роки тому

      You can make another function inside of the hook which takes in a body as an argument and use the body to make a post request. Same thing with the delete request

  • @brunomorais4129
    @brunomorais4129 2 роки тому

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

  • @subhashgn1775
    @subhashgn1775 3 роки тому +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.:/

  • @tareq8022
    @tareq8022 3 місяці тому

    is this the best way custom hook or react query or redux-toolkit ?

  • @k303k
    @k303k Рік тому

    thanks a lot for the video pedro!

  • @TheWolverine1984
    @TheWolverine1984 2 роки тому

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

  • @dotnetwithmark
    @dotnetwithmark 2 роки тому

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

  • @mwnkt
    @mwnkt 3 роки тому

    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 UA-cam you can see more videos being loaded.

  • @devinosborne3396
    @devinosborne3396 2 роки тому

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

  • @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.

  • @S--xc4rv
    @S--xc4rv Рік тому

    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

  • @divagesh
    @divagesh 2 роки тому

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

  • @khurshed780
    @khurshed780 3 роки тому +1

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

    • @PedroTechnologies
      @PedroTechnologies  3 роки тому +1

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

    • @khurshed780
      @khurshed780 3 роки тому

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

  • @milosnikolic4282
    @milosnikolic4282 2 роки тому

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

  • @nauni07
    @nauni07 2 роки тому

    Awesome explanation

  • @usmanirevo895
    @usmanirevo895 3 роки тому +1

    Awesome video, well explained

  • @exacode
    @exacode Рік тому

    Thanks man, this was very good

  • @vskyper
    @vskyper 3 роки тому

    useFetch function shouldn't be async? Or it doesn't matter?

    • @puneetsingh9678
      @puneetsingh9678 3 роки тому

      It would be async if you want to use async await. Here .then().catch() is used that does not require function to be async

  • @georgechong5065
    @georgechong5065 Рік тому

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

  • @bear-code
    @bear-code 2 роки тому +1

    thank you man , you are legend

  • @thijs9339
    @thijs9339 3 роки тому

    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  3 роки тому

      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.

  • @sonamohialdin3376
    @sonamohialdin3376 2 роки тому

    So good tutorial very useful

  • @cybertechzen5411
    @cybertechzen5411 2 роки тому

    Tnx man it really helped keep it up

  • @khurshed780
    @khurshed780 3 роки тому +1

    Great video plz keep it up 🚀

  • @abdulrahmanmamdouh7488
    @abdulrahmanmamdouh7488 2 роки тому

    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

  • @ThColinPereira
    @ThColinPereira 3 роки тому

    Exactly what I was looking for!

  • @minnuss
    @minnuss 3 роки тому

    Great video ! Clever and simple code, love it !

  • @sanjeebgochhayat6911
    @sanjeebgochhayat6911 2 роки тому

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

  • @sumitdhakal6405
    @sumitdhakal6405 Рік тому

    i get this type of error Cannot destructure property 'data' of '(0 , _useFetch__WEBPACK_IMPORTED_MODULE_1__.default)(...)' as it is undefined.
    TypeError: Cannot destructure property 'data' of '(0 , _useFetch__WEBPACK_IMPORTED_MODULE_1__.default)(...)' as it is undefined.

  • @luismarquez6653
    @luismarquez6653 2 роки тому

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

  • @johannsebastianbach3411
    @johannsebastianbach3411 3 роки тому

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

  • @alphaknite1458
    @alphaknite1458 4 місяці тому

    i keep getting this error: Error: (0 , _Hooks_useFetch__WEBPACK_IMPORTED_MODULE_2__.default) is not a function
    im using typescript, I searched everywhere but cant find a solution, even chatGPT aint helping

  • @TheNamesJT
    @TheNamesJT 3 роки тому +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?

  • @JasonWee
    @JasonWee 2 роки тому

    ROFLMAO... the api jokes is SOOOOOOOOOOOOOOOOOOOOOOOOO FUNNY

  • @shashankshekharsingh6076
    @shashankshekharsingh6076 2 роки тому

    Simply lucid 👍🙏🏻

  • @_h4x0r
    @_h4x0r 2 роки тому

    Thank you, Pedro!

  • @ezeargen
    @ezeargen Рік тому

    Hi Pedro! Thank you for this video. Is it just me or does the API request gets called twice? I checked on the Network tab, and I can see two network requests when the application is started / first render. Is this OK? I was expecting this to only make ONE CALL to the api. Let me know what you think about this.

    • @chrisstucker1813
      @chrisstucker1813 Рік тому

      Don’t worry, that’s normal. In your Index.js file you will see that React Strict Mode is on by default; this causes various behaviour including useEffects to fire twice for some reason.

      Remove the outer strict mode tags and the API call should only fire once

    • @killian_mcmillan
      @killian_mcmillan Рік тому

      The reason this is happening, since React 18, is that in "development mode" (as Chris said - in Strict Mode) React mounts, unmounts, and mounts again all of the components. This way it's testing, and you can tell, if you properly e.g. cleaned up your useEffect in the return function, which can cause issues and memory leaks if not handled properly. I guess there are some other reasons, but I hope that now you have more context and know what to look for. :) Cheers!

  • @d-landjs
    @d-landjs Рік тому

    Excellent info bro!!!

  • @moylababa8196
    @moylababa8196 3 роки тому +1

    please continue the graphql series

    • @PedroTechnologies
      @PedroTechnologies  3 роки тому +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!

  • @aghilannathan8169
    @aghilannathan8169 2 роки тому

    What is the reason to do this instead of using something like React Query?

  • @anbhuonline
    @anbhuonline 2 роки тому

    Simple and easy 👍

  • @mohammadyaseenshaik4325
    @mohammadyaseenshaik4325 2 роки тому

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

  • @progremeramatir
    @progremeramatir 2 роки тому

    Very good tutorial

  • @sanuyadav-ys3fb
    @sanuyadav-ys3fb Рік тому

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

  • @abhaytiwari6411
    @abhaytiwari6411 3 роки тому +1

    Splendid video 👍

  • @pikolq7665
    @pikolq7665 3 роки тому

    we need next js full course

  • @bastienv6233
    @bastienv6233 2 роки тому

    Thank again for your Nice content

  • @mohammadyaseenshaik4325
    @mohammadyaseenshaik4325 2 роки тому

    How to call that api again if the state is changed

  • @Max-hn9ib
    @Max-hn9ib 2 роки тому

    aren't you hammering the api though because useFetch will be called everytime App component rerenders?

  • @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.

  • @jobhatti
    @jobhatti 3 роки тому +1

    Awesome stuff keep it up!

  • @franco.delcas
    @franco.delcas 2 роки тому +1

    Cool stuff! thank u

  • @io1921
    @io1921 3 роки тому +1

    when's graphql ep.4 ?

  • @hamdskid
    @hamdskid Рік тому

    U saved my life 😂😂

  • @Dipenparmar12
    @Dipenparmar12 3 роки тому

    Amazing hook...

  • @saber1in
    @saber1in Рік тому

    post, put, delete?

  • @zeddscarlxrd4331
    @zeddscarlxrd4331 Рік тому

    Awesome dude thankssss

  • @EK-rp8jp
    @EK-rp8jp 3 роки тому

    super useful! thanks a lot:>

  • @helpbox6981
    @helpbox6981 Рік тому

    Bro I got a non veg joke 😂😂😂😂😂😂😂😂😂

  • @e-genieclimatique
    @e-genieclimatique 2 роки тому +1

    why those who make programming videos do not listen to their own video he would hear the deafening noise of their keyboard...there are keyboards with soft keys that are not noisy

    • @PedroTechnologies
      @PedroTechnologies  2 роки тому

      My keyboard changed is different now, back then that was the only keyboard i could afford. I can't have a perfect setup since the beginning. Im glad that now im able to afford better setup!

    • @joematkin3540
      @joematkin3540 2 роки тому

      You talk as if he owes you something. He owes you nothing.