2021. 11. 27. 20:10ใ๐ React
React์์ ํ์ ์ปดํฌ๋ํธ๋ก props ์ ๋ฌ ์, ํน์ ์์์๋ง ์ ๋ฌํ๊ธฐ ์ํ๋ ๋ณ์๊ฐ ์กด์ฌํ๋ค.
์๋ ์์๋ก ๊ฐ๋ก์ค์ ๊ตฌ์ฑํ๋ Row ์ปดํฌ๋ํธ์ ์ฒซ๋ฒ์งธ ์ค์๋ง isLargeRow ๋ณ์๋ฅผ ์ ๋ฌํด ๋ค๋ฅธ ์์๋ณด๋ค ํฌ๊ฒ ํ๋ฉด์ ํํํ๊ณ ์ถ๋ค๋ฉด
ํ์ ์ปดํฌ๋ํธ์์ isLargeRow ๋ณ์์ default๊ฐ์ false๋ก ์ง์ ํ ๋ค์ ์ํ๋ ํน์ ์ปดํฌ๋ํธ ์์์๋ง isLargeRow ๋ณ์๋ฅผ ์ ๋ฌํด์ฃผ๋ฉด๋๋ค.
ํ์ ์ปดํฌ๋ํธ
function Row({ data, isLargeRow = false }) {
return(
<p className={`view ${isLargeRow && 'viewLarge'}`}> {data.name} </p>
);
}
export default Row;
์์ ์ปดํฌ๋ํธ๋ก๋ถํฐ data์ isLargeRow์ด๋ผ๋ boolean๊ฐ์ ์ ๋ฌ๋ฐ๋ Row ์ปดํฌ๋ํธ๊ฐ ์กด์ฌํ๋ค.
isLargeRow ๋ณ์๋ฅผ ํตํด ํด๋น ์ปดํฌ๋ํธ๋ฅผ ๋ค๋ฅธ Row๋ณด๋ค ํฌ๊ฒ ๋ณด์ด๋๋ก ํ ์ง ์กฐ์ ํ ์ ์๋ ๋ณ์์ด๋ค.
์์ ์ปดํฌ๋ํธ
App ์ปดํฌ๋ํธ๊ฐ ๋ค์๊ณผ ๊ฐ์ ๋,
export default function App() {
const data = [...];
return (
<div>
<Row data={data} isLargeRow />
<Row data={data} />
<Row data={data} />
</div>
)
)
}
์์ ์ปดํฌ๋ํธ์ธ App์ Row์ ๊ณตํต์ ์ผ๋ก data๋ฅผ ์ ๋ฌํ์ง๋ง, ์ฒซ๋ฒ์งธ Row ์์์๋ง isLargeRow ๋ณ์๋ฅผ ์ ๋ฌํด ๋ค๋ฅธ ์์๋ค๊ณผ ๋ค๋ฅด๊ฒ ํํํ ์ ์๋ค.
Result
<Row data={data} isLargeRow /> // true
<Row data={data}/> // false
์ด ๊ฒฝ์ฐ isLargeRow๋ฅผ ์ ๋ฌํ์ง ์์ ์ปดํฌ๋ํธ ์ธก์๋ ํด๋น ๋ณ์๊ฐ false์ default๊ฐ์ ๊ฐ์ง๋๋ก ์์ฑํด๋์๊ธฐ ๋๋ฌธ์, isLargeRow๋ฅผ ์ ๋ฌํ ์ปดํฌ๋ํธ๋ง ์ฐธ์ ๊ฐ์ ๊ฐ์ง๋๋ก ์ ๋ฌ์ด ๋๋ค.
์ด๋ boolean ๊ฐ์ด ์๋๋๋ผ๋ ์ด๋ค ๋ฐ์ดํฐ๋ ์์ ๊ฐ์ ์ ํ์ ์ ๋ฌ์ด ๊ฐ๋ฅํ๋ฉฐ,
๋ณ์์ด๋ฆ์ ๋ช ํํ๊ฒ ์์ฑํด์ค๋ค๋ฉด ์ฝ๋์์๋ ๋ค๋ฅธ ์ปดํฌ๋ํธ์์ ์ฐจ์ด์ ์ ํ์ธํ๊ธฐ ์ข๋ค.
Posted by Ang