React7 min read
React State
Learn React State to make your components remember and update information.
Sarah Johnson
December 20, 2025
0.0k0
State lets your component remember information and update it. Think of it like a component's memory!
What is State?
State is data that can change in your component. When state changes, React automatically updates what shows on the screen.
Example:
A counter button needs to remember how many times it was clicked. That number is stored in state!
Using State
To use state, we need the useState hook:
import { useState } from 'react';
function Counter() {
const [count, setCount] = useState(0);
return (
<div>
<p>Count: {count}</p>
<button onClick={() => setCount(count + 1)}>
Click Me
</button>
</div>
);
}
What's happening:
useState(0)creates state with initial value 0countis the current valuesetCountis a function to update the value
How useState Works
const [value, setValue] = useState(initialValue);
- value - Current state value
- setValue - Function to change the value
- initialValue - Starting value (0, "", true, etc.)
Simple Examples
Example 1: Toggle Button
function ToggleButton() {
const [isOn, setIsOn] = useState(false);
return (
<button onClick={() => setIsOn(!isOn)}>
{isOn ? 'ON' : 'OFF'}
</button>
);
}
Example 2: Text Input
function NameInput() {
const [name, setName] = useState('');
return (
<div>
<input
value={name}
onChange={(e) => setName(e.target.value)}
placeholder="Enter your name"
/>
<p>Hello, {name}!</p>
</div>
);
}
Example 3: Like Button
function LikeButton() {
const [likes, setLikes] = useState(0);
return (
<button onClick={() => setLikes(likes + 1)}>
❤️ {likes} Likes
</button>
);
}
Multiple State Variables
You can have many state variables in one component:
function UserProfile() {
const [name, setName] = useState('John');
const [age, setAge] = useState(25);
const [city, setCity] = useState('New York');
return (
<div>
<p>Name: {name}</p>
<p>Age: {age}</p>
<p>City: {city}</p>
</div>
);
}
Updating State with Objects
When state is an object, create a new object when updating:
function UserForm() {
const [user, setUser] = useState({
name: 'Sarah',
age: 28
});
const updateName = () => {
setUser({
...user, // Keep old values
name: 'Jennifer' // Update name
});
};
return (
<div>
<p>{user.name}, {user.age} years old</p>
<button onClick={updateName}>Change Name</button>
</div>
);
}
The ...user is called "spread operator" - it copies the old values.
Common Mistakes
❌ Don't Modify State Directly
// Wrong
count = count + 1;
✅ Use setState Function
// Correct
setCount(count + 1);
State vs Props
Props:
- Passed from parent component
- Cannot be changed by component
- Like function parameters
State:
- Managed inside component
- Can be changed by component
- Like variables inside a function
Remember
- State is component's memory
- Use
useStateto create state - State changes trigger re-render
- Always use setState function to update
- Each component has its own state
Next: Learn React Events - How to handle clicks, typing, and more!
#React#State#useState#Beginner