React useEffect Hook Cheat Sheet
What is `useEffect`?
A React Hook for side effects like data fetching, DOM manipulation, timers, and more.
import { useEffect } from "react";
Basic Usage
useEffect(() => {
// Code runs after every render
});
Run Once on Mount (like `componentDidMount`)
useEffect(() => {
console.log("Component mounted");
}, []);
Run When Dependencies Change
useEffect(() => {
console.log(`Count is now ${count}`);
}, [count]);
- Runs on mount and when
count
changes.
Cleanup Function (like `componentWillUnmount`)
useEffect(() => {
const timer = setInterval(() => console.log("tick"), 1000);
return () => {
clearInterval(timer);
console.log("Cleaned up");
};
}, []);
Fetching Data
useEffect(() => {
async function fetchData() {
const res = await fetch("/api/data");
const json = await res.json();
setData(json);
}
fetchData();
}, []);
Common Patterns
Conditional Effect
useEffect(() => {
if (!user) return;
// Run only if user exists
}, [user]);
Watching Multiple Dependencies
useEffect(() => {
// Responds to either `a` or `b` changes
}, [a, b]);