React, with its component-based architecture, has revolutionized web development and I have been using it for more than an year now!!!
One of the most powerful tools in a React developer’s arsenal is the useState()
hook. In this blog post, we’ll dive into the details of useState()
, explore its use cases, and provide four practical examples to illustrate its versatility.
What is useState()
?
The useState()
hook is part of React’s built-in hooks API. It allows us to add state management to our functional components. With useState()
, we can create and manage state variables within our components. These state variables can hold various types of data, including strings, arrays, numbers, and objects.
How Does useState()
Work?
Importing
useState()
: To useuseState()
, start by importing it from React:JavaScript
import { useState } from 'react';
Initializing State: The
useState()
hook takes an initial value as its argument. It returns an array with two elements: the current state value and a function to update that state. For example:const [count, setCount] = useState(0);
Here,
count
represents the current state, andsetCount
is the function to update it.
Examples of useState()
hook
1. Counter
Let’s create a simple counter using useState()
. When the user clicks a button, the counter increments:
import React, { useState } from 'react';
const Counter = () => {
const [count, setCount] = useState(0);
const increment = () => {
setCount(count + 1);
};
return (
<div>
<p>Count: {count}</p>
<button onClick={increment}>Increment</button>
</div>
);
};
export default Counter;
2. Text Field
Imagine a form where users can input their name. We’ll use useState()
to manage the input value:
import React, { useState } from 'react';
const NameForm = () => {
const [name, setName] = useState('');
const handleInputChange = (e) => {
setName(e.target.value);
};
return (
<div>
<input
type="text"
value={name}
onChange={handleInputChange}
placeholder="Enter your name"
/>
<p>Hello, {name}!</p>
</div>
);
};
export default NameForm;
3. Checkbox
Toggle a boolean state using a checkbox:
import React, { useState } from 'react';
const ToggleCheckbox = () => {
const [isChecked, setIsChecked] = useState(false);
const handleToggle = () => {
setIsChecked(!isChecked);
};
return (
<div>
<input
type="checkbox"
checked={isChecked}
onChange={handleToggle}
/>
<label>Toggle</label>
</div>
);
};
export default ToggleCheckbox;
4. Fetching API Data
Use useState()
to store data fetched from an API:
import React, { useState, useEffect } from 'react';
const FetchData = () => {
const [data, setData] = useState([]);
useEffect(() => {
// Fetch data from an API
// Update state using setData
}, []);
return (
<div>
{data.map((item) => (
<p key={item.id}>{item.name}</p>
))}
</div>
);
};
export default FetchData;
The useState()
hook is a fundamental tool for managing state in React. By understanding its usage and exploring practical examples, we will be well-equipped to build dynamic and interactive components.