useEffect Hook in React

 This tutorial will cover, What are hooks in react? What is useEffect hook in ReactJS? And an example of useEffect React hooks.

useEffect Hook:

  • You can perform side effects in your components with the help of useEffect hook.
  • Side effects like fetching data, directly updating the DOM, and setting up timers can be performed using useEffect in react.
  • Comparing with React class lifecycle methods, you can consider useEffect as componentDidMount, componentDidUpdate, and componentWillUnmount combined.

It accepts two arguments. The second argument is optional.

useEffect(<function>, <dependency>)

Firstly, you need to import useEffect hook in Component

import {useEffect } from "react";

Runs on every render

useEffect(( ) => {
});

Runs only on the first render

useEffect(( ) => {
}, [ ]);

Runs on the first render And any time any dependency value changes

useEffect(( ) => {
}, [prop, state]);

Effect Cleanup

  • Some effects require cleanup to reduce data breach.
  • Timeouts, subscriptions, event listeners, and other effects that are no longer needed should be disposed of.
  • We do this by including a return function at the end of the useEffect Hook in React.
useEffect(( ) => {
   effect
   return ( ) => {
       cleanup
   }
}, [input])

Example of React useEffect

import { useState, useEffect } from "react";
import ReactDOM from "react-dom/client";
function Counter() {
    const [count, setCount] = useState(0);
    const [calculation, setCalculation] = useState(0);
    useEffect(() => {
        setCalculation(() => count * 2);
    }, [count]); // <- add the count variable here
    return (
    <>
        <p>Count: {count}</p>
        <button
        onClick={() => setCount((c) => c + 1)}
        >+</button>
        <p>Calculation: {calculation}</p>
     </>
     );
}

Conclusion:

Hope you got the clear idea about React hooks useEffect.