React์์ ๋ชจ๋ฌ์ฐฝ, ํญ, ์๋ธ๋ฉ๋ด ๋ฑ์ ๋์ ์ธ UI๋ฅผ ๋ง๋ค๊ธฐ ์ํ ์ฒด๊ณ์ ์ธ ์ ๊ทผ๋ฒ์ ์์๋ด ๋๋ค.
// ๋ชจ๋ฌ์ฐฝ ์ํ ๊ด๋ฆฌ๋ฅผ ์ํ state ์์ฑ
let [modal, setModal] = useState(false);
true/false, 0/1, '์ด๋ฆผ'/'๋ซํ'set์ผ๋ก ์์// JSX์์ ์กฐ๊ฑด๋ถ ๋ ๋๋ง
{
modal === true ? <Modal></Modal> : null
}
์กฐ๊ฑด ? ์ฐธ์ผ๋ ์คํ : ๊ฑฐ์ง์ผ๋ ์คํnull์ ์๋ฌด๊ฒ๋ ํ์ํ์ง ์์ ๋ ์ฌ์ฉfunction App() {
let [modal, setModal] = useState(false);
return (
<div className="app">
<div className="list">
<h4 onClick={() => { setModal(true) }}>๊ธ์ ๋ชฉ</h4>
<p>๋ ์ง</p>
</div>
{
modal === true ? <Modal></Modal> : null
}
</div>
);
}
๋ชจ๋ฌ์ฐฝ์ ์ด๊ณ ๋ซ๋ ํ ๊ธ ๊ธฐ๋ฅ ๊ตฌํ:
function App() {
let [modal, setModal] = useState(false);
return (
<div className="app">
<div className="list">
<h4 onClick={() => {
// ํ์ฌ ์ํ์ ๋ฐ๋ ๊ฐ์ผ๋ก ๋ณ๊ฒฝ (ํ ๊ธ)
setModal(!modal)
}}>
๊ธ์ ๋ชฉ
</h4>
<p>๋ ์ง</p>
</div>
{
modal === true ? <Modal></Modal> : null
}
</div>
);
}
if-else ๋์ ์ผํญ ์ฐ์ฐ์ ์ฌ์ฉClaude.ai ์์ ์ ์ํ ๊ฐ์์์ ๋ณด์ถฉํ๋ฉด ์ข์ ๋ด์ฉ
๋ค์ํ ์กฐ๊ฑด๋ถ ๋ ๋๋ง ๋ฐฉ์ ์๊ฐ ๋ถ์กฑ:
์ผํญ ์ฐ์ฐ์ ์ธ์๋ && ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ ๋ ๊ฐ๊ฒฐํ ๋ฐฉ์๋ ์์ต๋๋ค.
// true์ผ ๋๋ง ๋ณด์ฌ์ฃผ๊ธฐ (false์ผ ๋๋ ์๋์ผ๋ก ์๋ฌด๊ฒ๋ ํ์ ์ ํจ)
{ modal && <Modal></Modal> }
state ์
๋ฐ์ดํธ ์ต์ ํ ์ค๋ช
๋๋ฝ:
์ฌ๋ฌ ๋ฒ์ ํด๋ฆญ์ด ๋น ๋ฅด๊ฒ ๋ฐ์ํ ๊ฒฝ์ฐ, ํจ์ํ ์
๋ฐ์ดํธ ๋ฐฉ์์ ์ฌ์ฉํ๋ฉด ๋ ์์ ์ ์
๋๋ค.
// ์ผ๋ฐ ๋ฐฉ์
setModal(!modal)
// ํจ์ํ ์
๋ฐ์ดํธ ๋ฐฉ์
setModal(prevState => !prevState)