728x90
๋ฐ์ํ
Props๋ React์์ ์ปดํฌ๋ํธ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ๋ ๋ฐฉ๋ฒ์ ๋๋ค. Props๋ "properties"์ ์ค์๋ง๋ก, ๋ถ๋ชจ ์ปดํฌ๋ํธ๋ก๋ถํฐ ์์ ์ปดํฌ๋ํธ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ ๋ ์ฌ์ฉ๋ฉ๋๋ค. Props๋ ์ฝ๊ธฐ ์ ์ฉ์ด๋ฉฐ, ์ปดํฌ๋ํธ ๋ด๋ถ์์๋ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค. ์ด๋ ์ปดํฌ๋ํธ๊ฐ ์์ ํจ์์ฒ๋ผ ๋์ํ๋๋ก ํ์ฌ, ์์ธก ๊ฐ๋ฅํ ๋์์ ๋ณด์ฅํฉ๋๋ค.
Props ์ฌ์ฉ ๋ฐฉ๋ฒ
Props๋ฅผ ์ฌ์ฉํ๋ ๊ธฐ๋ณธ์ ์ธ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
- Props ์ ๋ฌํ๊ธฐ: ๋ถ๋ชจ ์ปดํฌ๋ํธ์์ ์์ ์ปดํฌ๋ํธ๋ก props๋ฅผ ์ ๋ฌํ ๋๋, ์์ ์ปดํฌ๋ํธ ํ๊ทธ์ ์์ฑ์ผ๋ก ์ถ๊ฐํฉ๋๋ค.
jsx
// ๋ถ๋ชจ ์ปดํฌ๋ํธ
function ParentComponent() {
return <ChildComponent name="John" age={30} />;
}
- Props ์ฌ์ฉํ๊ธฐ: ์์ ์ปดํฌ๋ํธ์์๋ ํจ์์ ๋งค๊ฐ๋ณ์๋ก props๋ฅผ ๋ฐ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
jsx
// ์์ ์ปดํฌ๋ํธ
function ChildComponent(props) {
return <h1>Hello, {props.name}!</h1>;
}
- ๊ตฌ์กฐ ๋ถํด ํ ๋น ์ฌ์ฉ: ์์ ์ปดํฌ๋ํธ์์ props๋ฅผ ๋ฐ์ ๋, ๊ตฌ์กฐ ๋ถํด ํ ๋น์ ์ฌ์ฉํ์ฌ ๋ ๊ฐ๊ฒฐํ๊ฒ ์ฝ๋๋ฅผ ์์ฑํ ์ ์์ต๋๋ค.
jsx
// ์์ ์ปดํฌ๋ํธ, ๊ตฌ์กฐ ๋ถํด ํ ๋น ์ฌ์ฉ
function ChildComponent({ name, age }) {
return <h1>Hello, {name}! You are {age} years old.</h1>;
}
Props์ ํน์ง
- ์ฝ๊ธฐ ์ ์ฉ: Props๋ ์ปดํฌ๋ํธ ๋ด๋ถ์์ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค. ๋ง์ฝ ์ปดํฌ๋ํธ ๋ด๋ถ์์ ๋ฐ์ดํฐ๋ฅผ ๋ณ๊ฒฝํด์ผ ํ๋ค๋ฉด, ์ํ(state)๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
- ์ฌ์ฌ์ฉ์ฑ: Props๋ฅผ ์ฌ์ฉํ์ฌ ์ปดํฌ๋ํธ์ ๋ค์ํ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํจ์ผ๋ก์จ, ์ปดํฌ๋ํธ์ ์ฌ์ฌ์ฉ์ฑ์ ๋์ผ ์ ์์ต๋๋ค.
- ๋จ๋ฐฉํฅ ๋ฐ์ดํฐ ํ๋ฆ: ๋ฐ์ดํฐ๋ ํญ์ ๋ถ๋ชจ ์ปดํฌ๋ํธ๋ก๋ถํฐ ์์ ์ปดํฌ๋ํธ๋ก๋ง ํ๋ฆ ๋๋ค. ์ด๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐ์ดํฐ ํ๋ฆ์ ์์ธกํ๊ธฐ ์ฝ๊ฒ ๋ง๋ค์ด ์ค๋๋ค.
Props๋ฅผ ํตํด ์ปดํฌ๋ํธ ๊ฐ์ ์ํธ์์ฉ๊ณผ ๋ฐ์ดํฐ ์ ๋ฌ์ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ ์ ์์ผ๋ฉฐ, React ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์กฐ๋ฅผ ์ดํดํ๋ ๋ฐ ์ค์ํ ๊ฐ๋ ์ ๋๋ค.
๋ฐ์ํ