Skip to content
Related Articles

Related Articles

ReactJS useLayoutEffect Hook
  • Last Updated : 22 Jan, 2021

The useLayoutEffect works similarly to useEffect but rather working asynchronously like useEffect hook, it fires synchronously after all DOM loading is done loading. This is useful for synchronously re-rendering the DOM and also to read the layout from the DOM. But to prevent blocking the page loading, we should always use useEffect hook.

The useLayoutEffect hook works in the same phase as componentDidMount and componentDidUpdate methods. We should only use useLayoutEffect if useEffect isn’t outputting the expected result.

Syntax:

useLayoutEffect()

Creating React Application:

Step 1: Create a React application using the following command:



npx create-react-app functiondemo

Step 2: After creating your project folder i.e. functiondemo, move to it using the following command:

cd functiondemo

Project Structure: It will look like the following.

Project Structure

Example: In this example, we are going to build a name changer application that changes the name of the state when the useLayoutEffect hook is called.

App.js: Now write down the following code in the App.js file. Here, App is our default component where we have written our code.

Javascript




import React, { useLayoutEffect, useState } from 'react';
  
const App = () => {
  const [value, setValue] = useState('GFG');
    
  useLayoutEffect(() => {
    if (value === 'GFG') {
     // Changing the state 
      setValue('GeeksForGeeks');
    }
    console.log('UseLayoutEffect is called with the value of ', value);
  }, [value]);
  
  return <div>{value} is the greatest portal for geeks!</div>;
};
  
export default App;

Step to Run Application: Run the application using the following command from the root directory of the project:

npm start

Output: 


Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.

My Personal Notes arrow_drop_up
Recommended Articles
Page :