Mastering React Hooks

    Aditya
    3 min read 07-06-2024
    Blog Post Image

    Mastering React Hooks

    React hooks provide a new way to use state and other React features in functional components. They offer a more concise and readable way to manage component state, side effects, and other features without writing class components.

    One of the most commonly used hooks is `useState`, which allows you to add state to your functional components:

    import React, { useState } from 'react';
    function Counter() {
      const [count, setCount] = useState(0);
      return (
        <div>
          <p>You clicked {count} times</p>
          <button onClick={() => setCount(count + 1)}>Click me</button>
        </div>
      );
    }
    
    

    In this example, `useState` initializes the `count` state variable to `0`. The `setCount` function is used to update the `count` variable, and clicking the button increments the count.

    Another powerful hook is `useEffect`, which allows you to perform side effects in function components. It's similar to lifecycle methods in class components like `componentDidMount`, `componentDidUpdate`, and `componentWillUnmount`:

    import React, { useState, useEffect } from 'react';
    function Example() {
      const [count, setCount] = useState(0);
      useEffect(() => {
        document.title = `You clicked ${count} times`;
      }, [count]);
      return (
        <div>
          <p>You clicked {count} times</p>
          <button onClick={() => setCount(count + 1)}>Click me</button>
        </div>
      );
    }

    In this example, the `useEffect` hook updates the document title whenever the `count` variable changes. The second argument to `useEffect` is an array of dependencies; `useEffect` will only run when one of the dependencies changes. If you omit the second argument, `useEffect` will run after every render.

    Other useful hooks include `useContext`, `useReducer`, `useMemo`, and `useRef`. Each hook serves a specific purpose and can help you manage complex state logic and side effects in a more modular and readable way.