์ด ๊ฐ์๋ React์์ ๋ณต์กํ HTML ์ฝ๋๋ฅผ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ๋จ์๋ก ๋ง๋๋ ์ปดํฌ๋ํธ(Component) ๋ฌธ๋ฒ์ ๋ํด ๋ค๋ฃน๋๋ค. ๋ชจ๋ฌ์ฐฝ UI๋ฅผ ์์ ๋ก ์ปดํฌ๋ํธ์ ๊ฐ๋ ๊ณผ ํ์ฉ๋ฒ์ ์ค๋ช ํฉ๋๋ค.
// HTML ๊ตฌ์กฐ
<div className="modal">
<h4>์ ๋ชฉ</h4>
<p>๋ ์ง</p>
<p>์์ธ๋ด์ฉ</p>
</div>
// CSS ์คํ์ผ
.modal {
margin-top: 20px;
padding: 20px;
background: #eee;
text-align: left;
}
return() ๋ด๋ถ์๋ ํ๋์ ์ต์์ ํ๊ทธ๋ง ์กด์ฌํด์ผ ํจ<> </>) ์ฌ์ฉ ๊ฐ๋ฅ// App ์ปดํฌ๋ํธ
function App() {
return (
<div>
{/* ๋ค๋ฅธ ๋ด์ฉ๋ค */}
<Modal></Modal>
</div>
)
}
// Modal ์ปดํฌ๋ํธ
function Modal() {
return (
<div className="modal">
<h4>์ ๋ชฉ</h4>
<p>๋ ์ง</p>
<p>์์ธ๋ด์ฉ</p>
</div>
)
}
function ํค์๋๋ก ํจ์ ์์ฑ ๋ฐ ๋๋ฌธ์๋ก ์์ํ๋ ์ด๋ฆ ์ง์ return() ์์ HTML ์ฝ๋ ์์ฑ<์ปดํฌ๋ํธ๋ช
></์ปดํฌ๋ํธ๋ช
> ํํ๋ก ์ฌ์ฉreturn() ์์๋ ๋ฐ๋์ ํ๋์ ์ต์์ ํ๊ทธ๋ง ์ฌ์ฉ<์ปดํฌ๋ํธ></์ปดํฌ๋ํธ> ๋๋ <์ปดํฌ๋ํธ/> ํํ๋ก ์ฌ์ฉ ๊ฐ๋ฅ// ์ผ๋ฐ ํจ์ ์ ์ธ์
function Modal() {
return (<div></div>)
}
// ํ์ดํ ํจ์ ํํ์
let Modal = () => {
return (<div></div>)
}
Claude.ai ์์ ์ ์ํ ๊ฐ์์์ ๋ณด์ถฉํ๋ฉด ์ข์ ๋ด์ฉ
ํจ์ ์ปดํฌ๋ํธ์ ํด๋์ค ์ปดํฌ๋ํธ ๊ตฌ๋ถ ๋๋ฝ:
๊ฐ์์์๋ ํจ์ํ ์ปดํฌ๋ํธ๋ง ์๊ฐํ๊ณ ์์ง๋ง, React์๋ ํด๋์คํ ์ปดํฌ๋ํธ๋ ์๋ค๋ ์ ์ ์ธ๊ธํ๋ฉด ์ข์ ๊ฒ ๊ฐ์ต๋๋ค. ์ต์ React์์๋ ํจ์ํ ์ปดํฌ๋ํธ๋ฅผ ๊ถ์ฅํ์ง๋ง, ๋ ๊ฑฐ์ ์ฝ๋์์ ํด๋์คํ ์ปดํฌ๋ํธ๋ฅผ ๋ง๋ ์ ์์ต๋๋ค.
React.Fragment์ ๋ํ ์ค๋ช
๋ถ์กฑ:
<> </> ๋ฌธ๋ฒ์ด Fragment๋ผ๊ณ ๊ฐ๋ตํ ์ธ๊ธ๋์์ง๋ง, ์ด๊ฒ์ด <React.Fragment> </React.Fragment>์ ์ถ์ฝํ์ด๋ผ๋ ์ค๋ช
๊ณผ Fragment๋ฅผ ์ฌ์ฉํ๋ ๊ตฌ์ฒด์ ์ธ ์ด์ (DOM์ ๋ถํ์ํ ๋
ธ๋ ์ถ๊ฐ ๋ฐฉ์ง)์ ์ถ๊ฐํ๋ฉด ์ข์ ๊ฒ ๊ฐ์ต๋๋ค.
์ปดํฌ๋ํธ ๋ช
๋ช
๊ท์น ์ถ๊ฐ ์ค๋ช
ํ์:
์ปดํฌ๋ํธ ์ด๋ฆ์ ๋๋ฌธ์๋ก ์์ํด์ผ ํ๋ค๊ณ ํ๋๋ฐ, ์ด๋ React๊ฐ ๋๋ฌธ์๋ก ์์ํ๋ JSX ํ๊ทธ๋ฅผ ์ปดํฌ๋ํธ๋ก ์ธ์ํ๊ณ , ์๋ฌธ์๋ก ์์ํ๋ ํ๊ทธ๋ฅผ DOM ์์๋ก ์ธ์ํ๊ธฐ ๋๋ฌธ์ด๋ผ๋ ์ด์ ๋ฅผ ์ค๋ช
ํ๋ฉด ๋ ๋ช
ํํ ๊ฒ ๊ฐ์ต๋๋ค.
์ปดํฌ๋ํธ์ ์ฌ์ฌ์ฉ์ฑ ๊ฐ์กฐ ๋ถ์กฑ:
์ปดํฌ๋ํธ์ ๊ฐ์ฅ ํฐ ์ฅ์ ์ค ํ๋๋ ์ฌ์ฌ์ฉ์ฑ์ธ๋ฐ, ๋ค์ํ props๋ฅผ ์ ๋ฌํ์ฌ ๊ฐ์ ์ปดํฌ๋ํธ๋ฅผ ๋ค์ํ ์ํฉ์์ ์ฌ์ฌ์ฉํ๋ ์์๊ฐ ์์ผ๋ฉด ์ข์ ๊ฒ ๊ฐ์ต๋๋ค.