Custom Hooks in React (Design Patterns)

2024 ж. 4 Мам.
27 735 Рет қаралды

Join The Discord! → discord.cosdensolutions.io
VSCode Theme | Font → Material Theme Darker | Menlo, Monaco "monospace"
In this video, we talk about Custom Hooks in React. Custom Hooks is one of the foundational concepts in modern React, ever since the introduction of Hooks in React 16.8. Custom Hooks in React allow you to extract logic in a shared hook that can be re-used across multiple components. It helps encapsulate logic in an efficient way, and helps build clean React applications that scale really well. In this video, I will show you how to apply the Custom Hooks design pattern in React.

Пікірлер
  • These types of videos are the types of videos that I benefit from the most. Very clean and very straightforward. Thank you

    @ericlorback4084@ericlorback40842 ай бұрын
  • I love that you make it look so easy even for people who are not very much experienced with react.

    @hazemgharib@hazemgharib2 ай бұрын
  • very nice clear precise and effective video, every time ads come i will never skip the ads i'll try to help people like you as best as i can😁

    @socaramdhani8046@socaramdhani80462 ай бұрын
  • Awesome tutorial! Clear, concise and exhaustive. 💯

    @SaurabhMisra-yf8lf@SaurabhMisra-yf8lfАй бұрын
  • it helps me a lot, really appreciate all of your videos, thank you

    @sontranvan5348@sontranvan53482 ай бұрын
  • Really quality content

    @samratchandravanshi3869@samratchandravanshi38692 ай бұрын
  • Nice. Must watch this later . 😊

    @mDHARYL@mDHARYL2 ай бұрын
  • Perfect tutorial. Must watch for beginner react devs

    @doorey2@doorey2Ай бұрын
  • Seus vídeos são incríveis e explicativos 👏👏👏👏

    @brNoMundo123@brNoMundo1232 ай бұрын
  • this is exactly what i need

    @a7lavinraj863@a7lavinraj8632 ай бұрын
  • Awesome, now I need to do it again in slow motion with a lot of extra processing :)

    @arturmrozinski7536@arturmrozinski7536Ай бұрын
  • I could learn a lot of from your videos. ❤

    @muhammedsahad1612@muhammedsahad161210 сағат бұрын
  • Great video

    @harvey_04@harvey_0414 сағат бұрын
  • thanks you!!! (especially subtitle)

    @yoky0429@yoky04292 ай бұрын
    • you're welcome! All my videos will have subtitles from now on :D

      @cosdensolutions@cosdensolutions2 ай бұрын
  • 1440p. great!

    @ddorabang@ddorabang2 ай бұрын
  • Just a reminder: custom hooks do not need to have .tsx or .jsx file extensions, when they dont return any JSX code. The only thing is that they need to be called within a functional component

    @nigeldasilvalima4568@nigeldasilvalima45682 ай бұрын
  • Hi I have watched your single responsibility principle, in that video you have mentioned a separate util to fetch the api, should the api fetching part in the useFetchComments should moved separately to achieve SRP ?

    @akilavan2149@akilavan21492 ай бұрын
    • yes that's correct! Here I left it to keep it focused on custom hooks

      @cosdensolutions@cosdensolutions2 ай бұрын
  • React devs, this guy is the real deal. Trust

    @nanonkay5669@nanonkay5669Ай бұрын
  • I humbly suggest considering a tutorial series that encompasses all the essential topics.

    @bharadwaz2@bharadwaz22 ай бұрын
    • Building an entire course with that and so much more! Stay tuned ☺️

      @cosdensolutions@cosdensolutions2 ай бұрын
  • can you please make a video about casl in react ? or virtualization in react (from scratch)

    @mohamedsalimbensalem6118@mohamedsalimbensalem61182 ай бұрын
  • Great and simple tutorial to understand Custom Hooks, thank you. Just a question though - how does it improve performance comparing to the initial code as you explained?

    @macismail2003@macismail20032 ай бұрын
    • It doesn't, in both cases the performance is the same. However the code is much cleaner and organized! It's not always about performance

      @cosdensolutions@cosdensolutions2 ай бұрын
    • @@cosdensolutions I know but you mentioned in the video. That’s what I meant. Anyways thank you.

      @macismail2003@macismail20032 ай бұрын
  • Love your videos, will you create a react course with TS? I would definetly buy it!

    @kaluczadzsi@kaluczadzsi2 ай бұрын
    • I am creating a course where you build a real-world project while being guided step-by-step. It goes much more indepth than any of my videos, and it shows you how everything fits together in a real project. I will be JS but trust me, it'll still be worth it! Coming out very soon :D

      @cosdensolutions@cosdensolutions2 ай бұрын
    • @@cosdensolutions Thanks! I am really looking forward to it! :)

      @kaluczadzsi@kaluczadzsi2 ай бұрын
  • Firstly, this is incredible content! Very clear instructions. Quick question: what if you've abstracted state that needs to be updated via some sort of interaction (e.g. like a button click)? do you also pass down "setters" for the state ,or is that an anti-pattern?

    @aarondean1872@aarondean18722 ай бұрын
    • You return a function from the hook that you pass to your button to call

      @cosdensolutions@cosdensolutions2 ай бұрын
    • thank you! itd be awsome if u made a KZhead Short with an example. appreciate your content!

      @aarondean1872@aarondean18722 ай бұрын
  • Can you make a video guide for Vim in vs code. how to do add it and set it up. Would be very usefull. Thanks!

    @DellmantHD@DellmantHD2 ай бұрын
  • I had a discussion just yesterday about what should be contained within a custom hook. Should it only be code which includes state management / jsx or can it also include 'helper' functions (which could just be part of a non-hook helper file)? I'd be interested in hearing peoples perspectives.

    @joelbrighton2819@joelbrighton28192 ай бұрын
    • I would put the helper functions in another file usually. Unless they are specifically used for the custom hook and only for that custom hook

      @cosdensolutions@cosdensolutions2 ай бұрын
  • Do we have any code repo for this video?

    @mahadihassan5596@mahadihassan55962 ай бұрын
  • Loved the video! Would it also have been reasonable to keep the comments/setComments in CommentsPage and pass comments/setComments to both useFetchComments and useAddComment?

    @GigaFro@GigaFroАй бұрын
    • nope, that would defeat the entire purpose of the custom hooks. If you're passing comments to useFetchComments, you also have to fetch them outside and manage that whole thing. Which puts you right where we started this video

      @cosdensolutions@cosdensolutionsАй бұрын
    • @@cosdensolutions Apologies for my React noob-ness and I appreciate the patience in advance. But, if the point of using custom hooks is to distribute the responsibility to different hooks, then is it not reasonable to have the custom hook, useFetchComments, be responsible for fetching comments while CommentsPage can be responsible for maintaining the data structure (comments) that will be shared between its two custom hooks? Also, why would I need to fetch them outside of the useFetchComments if I passed the setComment function handler as input to the custom hook? Maybe I am misunderstanding the definition of a "hook" in React. Thanks!

      @GigaFro@GigaFroАй бұрын
  • In Initial code, it was locally adding the comment, in Your refactor code you are fetching all records again. And its a good practice to do update the state locally without fetching on each comment. So how can we locally update the state using mentioned custom hooks approach, Thank you

    @adilmustafa1748@adilmustafa17482 ай бұрын
    • yes it was, in that case you'd need to pass the function to set the comments instead of a refetch function. The rest would work the same!

      @cosdensolutions@cosdensolutions2 ай бұрын
  • hi question when to use this clean up pattern? useEffect( ()=>{ var mounted = true // do logic here return () => { mounted = false } },[])

    @anonysmooth648@anonysmooth6482 ай бұрын
    • I never use it tbh!

      @cosdensolutions@cosdensolutions2 ай бұрын
    • It's just something you wanna do on component unmount. Unsubscribing from things to prevent memory leaks is one of the most frequent use cases: removeEventListener, mutationObserver.disconnect() and such. But it could be anything really, you may want to console.log('unmounting') and this would be the place to do it

      @user-kb2nu8lh2t@user-kb2nu8lh2t2 ай бұрын
  • so this is an alternative for HOC , right?

    @ananthac6472@ananthac647210 күн бұрын
  • what theme are you using in vscode?

    @dudutravi@dudutraviАй бұрын
  • I prefer writing my custom hook code in my component file as it is better organized and easily maintainable. Is there any downside to this approach in the long run?

    @siddhartha-555@siddhartha-5552 ай бұрын
    • custom hooks are meant to be shared and re-usable, so they shouldn't go in any component file, but inside of the hooks folder so any component can use them

      @cosdensolutions@cosdensolutions2 ай бұрын
  • Bro how long have you been coding for?

    @UFO_808@UFO_8082 ай бұрын
    • 8 years

      @cosdensolutions@cosdensolutions2 ай бұрын
  • i know this is not react related but, can u do a tutorial on neovim or vim or just the vim motion in your vscode

    @gutierrezpaulchristianl.6466@gutierrezpaulchristianl.64662 ай бұрын
    • Why in the world would he care about vim? It's 2024, you shouldnt either

      @mladenorsolic370@mladenorsolic3702 ай бұрын
    • @@mladenorsolic370 I think some people a just masochists: "hey look at me, I can stick pins in my eyes"! :)

      @joelbrighton2819@joelbrighton28192 ай бұрын
  • When you say custom hooks have to be prefixed with use, just for clarity, its just a best practice, react doesnt impose this nor it would treat a hook function any different if it wasnt prefixed with use.

    @mladenorsolic370@mladenorsolic3702 ай бұрын
  • a video on your vs code setup

    @ShivaprasadBilgundi@ShivaprasadBilgundi2 ай бұрын
    • already done

      @cosdensolutions@cosdensolutions2 ай бұрын
  • Sir use the simple react without Typescript more people will watch, understand and grasp the code properly.

    @faizanshaikh2351@faizanshaikh23512 ай бұрын
    • No thank 😂

      @sigilosidad@sigilosidad2 ай бұрын
    • Trust me he knows what is he doing. While ago i had same thoughts but not anynore. Learn the very basics of ts. U have to learn it anyway , early or late.

      @johndevnoza4223@johndevnoza42232 ай бұрын
    • It's 2024, no one should learn React without TypeScript.

      @jeromesnail@jeromesnail2 ай бұрын
    • people who say that often struggle with typescript thts why they complain

      @UberEverywhereSKRT@UberEverywhereSKRT2 ай бұрын
    • No

      @bryson2662@bryson26622 ай бұрын
KZhead