Getting Started with React Hooks useState and useEffect for State Management and Side Effect Handling

Jubin Soni
2 min readOct 4, 2023

--

React Hooks provide a way to manage state and side effects in functional components. They were introduced in React 16.8 to allow developers to use state and other React features without writing a class. In this tutorial, we’ll explore how to use React Hooks for state management.

Prerequisites

Before we begin, make sure you have the following installed:

  • Node.js and npm
  • Basic knowledge of React

Creating a React App

Let’s start by creating a new React app using Create React App, a popular tool for setting up React projects:

npx create-react-app react-hooks-demo
cd react-hooks-demo

Using State with useState

In functional components, you can use the useState Hook to add state to your component. Let's create a simple counter component:

import React, { useState } from 'react';

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

return (
<div>
<p>Count: {count}</p>
<button onClick={() => setCount(count + 1)}>Increment</button>
</div>
);
}

export default Counter;

In this example, we import useState from 'react' and use it to declare a state variable count and a function setCount to update it. The useState Hook takes an initial state as an argument.

Using Effects with useEffect

The useEffect Hook allows you to perform side effects in your components. Let's create a component that fetches data from an API when it mounts:

import React, { useState, useEffect } from 'react';

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

useEffect(() => {
fetch('https://api.example.com/data')
.then((response) => response.json())
.then((result) => setData(result))
.catch((error) => console.error(error));
}, []); // Empty dependency array means it runs once on mount

return (
<div>
<h2>Fetched Data</h2>
<ul>
{data.map((item) => (
<li key={item.id}>{item.name}</li>
))}
</ul>
</div>
);
}

export default DataFetcher;

In this example, we use useEffect to fetch data when the component mounts. The empty dependency array [] ensures that the effect runs once. You can also pass dependencies to useEffect to control when it runs.

Visualization of useState and useEffect in action

Conclusion

React Hooks represent a paradigm shift in state management and side effect handling within functional components. In this tutorial, we’ve covered the fundamentals of using useState and useEffect Hooks for state management. As you continue to explore React Hooks, you’ll unlock the potential to build sophisticated, maintainable, and efficient React applications.

This tutorial equips you with the knowledge and tools to harness React Hooks effectively for your projects. Dive in and start crafting robust React applications with confidence. Happy coding!

--

--