・Collocating State is placing a state as close as possible to where it's used. This pattern reduces complexity and makes components easier to understand.
Before
function App() {
const [isVisible, setIsVisible] = useState(false);
return (
<div>
<h1>Colocating State Example</h1>
<ToggleSection isVisible={isVisible} setIsVisible={setIsVisible}/>
</div>
);
}
function ToggleSection({isVisible, setIsVisible}) {
return (
<div>
<button onClick={() => setIsVisible(!isVisible)}>
{isVisible ? "Hide" : "Show"} Content
</button>
{isVisible && (
<div>
<p>This content can be toggled!</p>
</div>
)}
</div>
);
}
After
function App() {
//Removed the isVisible state.
return (
<div>
<h1>Colocating State Example</h1>
<ToggleSection />
</div>
);
}
function ToggleSection() {
//Placed the isVisible state here.
const [isVisible, setIsVisible] = useState(false);
return (
<div>
<button onClick={() => setIsVisible(!isVisible)}>
{isVisible ? "Hide" : "Show"} Content
</button>
{isVisible && (
<div>
<p>This content can be toggled!</p>
</div>
)}
</div>
);
}
Top comments (0)