์ฌ์ฉ์ ๋ชฉ๋ก, ๋๊ธ ๋ชฉ๋ก, ์ํ ๋ฆฌ์คํธ์ฒ๋ผ ์ฌ๋ฌ ๊ฐ์ ํญ๋ชฉ์ ๋ฐ๋ณตํด์ ํ๋ฉด์ ๋ณด์ฌ์ค์ผ ํ๋ ๊ฒฝ์ฐ, React์์๋ map()
ํจ์๋ฅผ ์ฌ์ฉํด์ JSX๋ฅผ ๋ฐ๋ณต ๋ ๋๋งํฉ๋๋ค.
์ด๋ฒ ๊ธ์์๋ ๋ฆฌ์คํธ ๋ ๋๋ง์ ๊ธฐ๋ณธ๊ณผ ํจ๊ป, ๊ผญ ํ์ํ key ์์ฑ์ ๋ํด ์ค๋ช ํฉ๋๋ค.
1. ๐ ๋ฐฐ์ด์ JSX๋ก ๋ฐ๊พธ๊ธฐ โ map() ํจ์
JS์ map()
ํจ์๋ ๋ฐฐ์ด์ ๋ฐ๋ณตํด ๊ฐ๊ฐ์ ์์๋ฅผ ์ํ๋ ํํ๋ก ๋ฐ๊ฟ์ค๋๋ค.
const fruits = ['์ฌ๊ณผ', '๋ฐ๋๋', '๋ธ๊ธฐ'];
function FruitList() {
return (
<ul>
{fruits.map((fruit) => (
<li>{fruit}</li>
))}
</ul>
);
}
์ ์ฝ๋์์ fruits
๋ฐฐ์ด์ ์์๋ค์ <li>
ํ๊ทธ๋ก ๋ฐ๋ณต ์ถ๋ ฅํ๊ณ ์์ด์.
2. โ ๏ธ key ์์ฑ์ ๊ผญ ๋ฃ์!
React๋ ๋ฆฌ์คํธ๋ฅผ ๋ ๋๋งํ ๋ ๊ฐ ํญ๋ชฉ์ ๊ตฌ๋ถํ๊ธฐ ์ํด key๋ฅผ ์ฌ์ฉํฉ๋๋ค. key๊ฐ ์๊ฑฐ๋ ์ค๋ณต๋๋ฉด ์ฑ๋ฅ ์ ํ๋ UI ๋ฌธ์ (์: ๊น๋นก์)๊ฐ ์๊ธธ ์ ์์ด์.
์ ์์ ๋ฅผ ๊ฐ์ ํด๋ณผ๊ฒ์:
{fruits.map((fruit, index) => (
<li key={index}>{fruit}</li>
))}
๐ ์ฌ๊ธฐ์ index
๋ฅผ key๋ก ์ผ์ง๋ง, ๊ฐ๋ฅํ๋ฉด ๊ณ ์ ํ ๊ฐ(์: id)์ ์ฌ์ฉํ๋ ๊ฒ์ด ๋ ์ข์ต๋๋ค.
3. ๐งช ๊ณ ์ ID๊ฐ ์๋ ๊ฒฝ์ฐ
const users = [
{ id: 1, name: '์ฒ ์' },
{ id: 2, name: '์ํฌ' }
];
function UserList() {
return (
<ul>
{users.map(user => (
<li key={user.id}>{user.name}</li>
))}
</ul>
);
}
key={user.id}๋ ์ต์ ์ ๋ฐฉ์์ ๋๋ค. ์ด ๊ฐ์ ํญ๋ชฉ์ด ๋ณํด๋ ์ ์ง๋๊ธฐ ๋๋ฌธ์ด์ฃ .
๐ ์ ๋ฆฌ
- React์์ ๋ฐฐ์ด์ ์ถ๋ ฅํ ๋
map()
์ ์ฌ์ฉํด ๋ฐ๋ณตํฉ๋๋ค key
๋ ํ์์ด๋ฉฐ, ๊ฐ ํญ๋ชฉ์ ๊ณ ์ ํ๊ฒ ๊ตฌ๋ถํ๋ ์ญํ ์ ํฉ๋๋ค- ๊ฐ๋ฅํ๋ฉด index ๋์ ๊ณ ์ ํ id๋ฅผ key๋ก ์ฌ์ฉํ์ธ์
๐ผ๏ธ ๋ฆฌ์คํธ ๋ ๋๋ง ํ๋ฆ๋
์๋ ๊ทธ๋ฆผ์ ๋ฐฐ์ด โ ๋ฐ๋ณต โ JSX โ ๋ ๋๋ง ๊ณผ์ ์ ์๊ฐํํ ํ๋ฆ๋์ ๋๋ค:
