Crucial for understanding how components behave over time, especially with class components or useEffect.
01
01
Understand the problem
lifecyclemountingupdatingunmounting
02
02
Attempt it yourself
Sketch your approach before reading the solution — that's what interviews test.
Stuck? AI Nudge Available
Get a conceptual hint to guide your logic without spoiling the final implementation.
03
03
Study the solution
The solution is waiting
Give it an honest attempt first — then compare your thinking with the full walkthrough.
04
04
Read the code
Mount, update, and unmount with one effect
import { useState, useEffect } from "react";
function Child({ id }) {
useEffect(() => {
console.log("mount/update for id", id); // runs on mount + when id changes
return () => console.log("cleanup for id", id); // before next run + on unmount
}, [id]);
return <p>Item {id}</p>;
}
export default function App() {
const [id, setId] = useState(1);
const [shown, setShown] = useState(true);
return (
<div style={{ padding: 24, fontFamily: "system-ui" }}>
{shown && <Child id={id} />}
<button onClick={() => setId((n) => n + 1)}>Update id</button>
<button onClick={() => setShown((s) => !s)}>Mount/Unmount</button>
</div>
);
}05
05
Join the discussion
Discussion (0)
Sign in to join the discussion.
No responses yet. Be the first to share what you think.