Techumber
Home Blog Work

Introduction to React Hooks

Published on May 7, 2022

Introduction

In this post, we will explore React Hooks and how they can be used to manage state and side effects in React components. We will start with the basics and then move on to more advanced topics…

What are React Hooks?

React Hooks are a way to extract logic from React components and use it elsewhere. They allow developers to reuse code and make their applications more modular and easier to maintain.

State Hooks

One of the most common use cases for React Hooks is managing state in functional components. With the useState hook, you can create a piece of state that can be used within your component. Here’s an example:

import { 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, we are using the useState hook to create a piece of state called count that starts at 0. We can then use this state within our component to display the number of times the button has been clicked and update it when the button is clicked.

Effect Hooks

Another common use case for React Hooks is managing side effects, such as fetching data from an API or setting up a subscription. With the useEffect hook, you can run some code after every render of your component. Here’s an example:

import { useState, useEffect } from 'react';

function Example() {
  const [data, setData] = useState([]);

  useEffect(() => {
    fetch('/api/data')
      .then((response) => response.json())
      .then((data) => setData(data));
  }, []);

  return (
    <div>
      {data.map((item) => (
        <p key={item.id}>{item.name}</p>
      ))}
    </div>
  );
}

In this example, we are using the useEffect hook to fetch data from an API and store it in our component’s state. We can then use this data within our component to display it.

Custom Hooks

React also allows developers to create their own custom hooks for managing specific pieces of logic. These can be useful for reusing code across different components or for organizing related functionality together. Here’s an example:

import { useState } from 'react';

function useCount() {
  const [count, setCount] = useState(0);

  return { count, setCount };
}

function Counter() {
  const { count, setCount } = useCount();

  return (
    <div>
      <p>You clicked {count} times</p>
      <button onClick={() => setCount(count + 1)}>Click me</button>
    </div>
  );
}

In this example, we have created a custom hook called useCount that creates and manages state. We can then use this hook within our component to manage the counter logic.

Conclusion

React Hooks are a powerful way to manage state and side effects in React components. With Hooks, you can extract logic from components and reuse it elsewhere. They also allow developers to create their own custom hooks for managing specific pieces of logic. By understanding how to use React Hooks effectively, developers can make their applications more modular and easier to maintain.