Learn React Hooks: useLayoutEffect - Simply Explained!

Поділитися
Вставка
  • Опубліковано 9 лис 2023
  • Join The Discord! → discord.cosdensolutions.io
    Source Code → github.com/cosdensolutions/co...
    In this video we will learn about React hooks, starting with useLayoutEffect. This powerful React hook will allow you to run an effect before the browser paints the screen and the component is rendered. This works in exactly the same way as useEffect, with the only difference that useLayoutEffect is synchronous and will block rendering to execute its code. Most of the times useEffect is all you need, but sometimes useLayoutEffect is a better choice!
    In this new React world, hooks are here to stay, so it's best to learn them! In this tutorial I demonstrate the useLayoutEffect React hook, and I explain it very simply and in a way that is easy to understand. Enjoy!

КОМЕНТАРІ • 52

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

    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

  • @mdzaidsiddiqui4262
    @mdzaidsiddiqui4262 8 місяців тому +2

    This is the best useLayoutEffect explanation I've ever seen on yt. Thank you!

  • @erik.schlegel
    @erik.schlegel 8 місяців тому +6

    Just got through your Learn React Hooks playlist. Big fan of your natural and snappy teaching and crisp editing. You were a tremendous help on my react journey and I am very grateful to have found your channel. Links to your content are henceforth being included in all my see more... documentation. Cheers!

    • @cosdensolutions
      @cosdensolutions  8 місяців тому

      Thank you for the kind words! Really glad you found the videos useful ☺️

  • @danteDeveloper
    @danteDeveloper 8 місяців тому +1

    Great talk. I just want to point small things setState is not asynchronous, but rendering works asynchronously. Thank you Cosden, what a wonderful speech.

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

    Great Explanation ❤!

  • @Leyksnal
    @Leyksnal 8 місяців тому

    I really dont need to watch another video , U killed it, thanks

  • @DKevin-rb6vh
    @DKevin-rb6vh 3 місяці тому

    Wonderful explanation :) Keep up the great work buddy. Love from India

  • @oProfessorJohnny
    @oProfessorJohnny 8 місяців тому

    thank godness, i can not beleave in how you can teach so clearly and direct on the point, you are amazing brow please keep making more videos!

    • @cosdensolutions
      @cosdensolutions  8 місяців тому

      Thank you for the kind words! ☺️ will do

  • @angletheeta
    @angletheeta 8 місяців тому

    sir your words are words "welcome back to the last {topic} tutorial video you ever going to after watch" I experienced that so many times in every time watching 2 or 3 tutorials and get nothing from those and come to the cosden solutions yes i do not need to watch another. Thank you for your great effort that you put to uplift the youngsters knowledge . You may deserve over 1M subscribers soon. Hats off from Sri Lanka❤

  • @Movoid12
    @Movoid12 8 місяців тому

    Thank you for the great video 👍

  • @brunoguerra7160
    @brunoguerra7160 8 місяців тому

    very good!! brings the useTransition hook

  • @tigranharutyunyan7674
    @tigranharutyunyan7674 7 місяців тому

    You are awesome. Please keep on.

  • @navinkumarsahu1159
    @navinkumarsahu1159 7 місяців тому

    clear to the exact point thanks a lot videsi guy

  • @rohanrocksgamingvalorant8881
    @rohanrocksgamingvalorant8881 Місяць тому

    amazing .liked a lot

  • @prakashraj4519
    @prakashraj4519 8 місяців тому

    Loved it ❤

  • @ekchills6948
    @ekchills6948 8 місяців тому

    You delivered 👌

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

    Thanks a lot!

  • @sanjoyrakshit842
    @sanjoyrakshit842 8 місяців тому

    Very useful information thanks love from India ❤❤

  • @brothersumitkumar
    @brothersumitkumar 25 днів тому

    Awesome!!!

  • @deepakkashyap6538
    @deepakkashyap6538 8 місяців тому

    Great explanation serr 👌, having an indepth idea about hooks in general can help Developers take informed decision while designing the architecture of the application and avoid technical debts interms of performance of the application is considered.

  • @ivolovyk
    @ivolovyk 8 місяців тому +1

    Great video, thanks. I think working with DOM is a great case for useLayoutEffect. useLayoutEffect will return the correct sizes of elements via ref on the first render, while useEffect will return 0 because it takes sizes before DOM is ready.

  • @kunals6879
    @kunals6879 5 місяців тому

    Your videos are more easy to follow than Meta's own React Certification Course

  • @revanrivani770
    @revanrivani770 8 місяців тому

    Amazing video. I had an issue a few days back using react-native. Where I wanted to change the navigation name in a component and if u navigate to “quick” u could see the old name and then change to the new name. So that’s when layouteffect came in clutch

  • @harag9
    @harag9 8 місяців тому +1

    Great video, never seen that use hook before, but interesting how it works compared to useEffect. However I can't think of a reason when you would use it as you say 99% of the time the useEffect is better.

    • @cosdensolutions
      @cosdensolutions  8 місяців тому

      usually used when you need to get sizes and dimensions of html elements through ref to compute things!

    • @harag9
      @harag9 8 місяців тому

      @@cosdensolutionsAhh, good to know. thanks. :)

  • @rometpastak1
    @rometpastak1 8 місяців тому +16

    Why not bring out some example of thoses cases you actually use it then?

    • @QuanTran-wt4yt
      @QuanTran-wt4yt 7 місяців тому

      normally, i would use it with animations because it requires precise layout

  • @islambn8962
    @islambn8962 8 місяців тому

    Thank you for the great tutorial. Although React Docs does not recommend useLayoutEffect, sometimes it's the only way.
    for ex:
    persisting DarkMode or checking user login status

  • @haikelareff
    @haikelareff 6 місяців тому

    how do we set different theme to each multiple (dynamic) pages ex: category pages, or maybe random themes for each blogpost? in next14

  • @imamdroubi6537
    @imamdroubi6537 6 місяців тому

    Thanks a lot for this series,
    for this specific hook, is it good to use it in a protected route for example ?
    where you need to check if there is a user in the auth context, it takes some time , and you don't want the user to see the page if he isn't logged in, so does it make sense to use this hook in this situation to block the page from rendering for un-authorized users ?

    • @cosdensolutions
      @cosdensolutions  6 місяців тому +1

      a better idea would be to show a loader while that happens, with a normal useEffect!

    • @imamdroubi6537
      @imamdroubi6537 6 місяців тому

      @@cosdensolutions Thanks

  • @AykutKlc
    @AykutKlc 6 місяців тому +1

    6:47 how does calling setState stop rendering? is the returned value ignored?

  • @bikrantjungbudhathoki3687
    @bikrantjungbudhathoki3687 8 місяців тому

    Name of the theme you're using???

  • @serbanmarin-eusebiu
    @serbanmarin-eusebiu 8 місяців тому

    I am just curious, because I use quite often use useLayoutEffect for the next scenario, I have a user state in redux, that on every refresh I need to get from the server(golang server), so the base ideea was to use use useLayoutEffect to remove the errors of the application as well to remove the flickering from user useEffect. What’s your ideea about it? Do you think could be done better?

    • @cosdensolutions
      @cosdensolutions  8 місяців тому

      I wouldn't necessarily use useLayoutEffect for that, I would use a normal useEffect and fetch the user and while it is fetching, show a loading spinner on the whole app. Then once the user is available, you can render the rest of the app. No need specifically for useLayoutEffect!

  • @vesa95
    @vesa95 8 місяців тому

    Great, great video, I’m always here to show my appreciation, but Darius, sunt in stare de soc, esti roman? 😱

    • @cosdensolutions
      @cosdensolutions  8 місяців тому

      Da hahahaha

    • @vesa95
      @vesa95 8 місяців тому

      @@cosdensolutions fantastic, ti-am dat add pe linkedIn, nu-mi vine sa cred ca fix persoana de la care abia astept sa posteze ceva nou despre react (din tot yt) e la 50 de km de mine 😂

  • @oz4549
    @oz4549 8 місяців тому

    2:05 please what do you mean by derive the state? thanks

    • @Ethereal792
      @Ethereal792 8 місяців тому +2

      Instead of setting `isAdmin` from a useState hook `setIsAdmin`, you can simply add something like `const isAdmin = userId === 1`

    • @cosdensolutions
      @cosdensolutions  8 місяців тому

      Yes exactly

    • @oz4549
      @oz4549 8 місяців тому

      ​@@Ethereal792Thanks 🙏

  • @zeeshanalic
    @zeeshanalic 8 місяців тому +1

    React-router-dom v6 make a video on it. kindly!

  • @xxXAsuraXxx
    @xxXAsuraXxx 8 місяців тому

    another foot gun from react