JavaScript - map & key props

Array.map

  • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฐฐ์—ด ๊ฐ์ฒด์˜ ๋‚ด์žฅ ํ•จ์ˆ˜
  • ๋ฐ˜๋ณต๋˜๋Š” ์ปดํฌ๋„ŒํŠธ์˜ ๋ Œ๋”๋ง ๊ฐ€๋Šฅ
  • ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ์ „๋‹ฌ๋œ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฐ์—ด ๋‚ด ๊ฐ ์š”์†Œ๋ฅผ ์›ํ•˜๋Š” ๊ทœ์น™์— ๋”ฐ๋ผ ๋ณ€ํ™˜ํ•œ ํ›„ ๊ทธ ๊ฒฐ๊ณผ๋กœ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์— ์ €์žฅ

key

  • ๋ฆฌ์•กํŠธ์—์„œ key๋Š” ์ปดํฌ๋„ŒํŠธ ๋ฐฐ์—ด์„ ๋ Œ๋”๋งํ–ˆ์„ ๋•Œ, ์–ด๋–ค ํ•ญ๋ชฉ์— ๋ณ€๋™์ด ์žˆ์—ˆ๋Š”์ง€๋ฅผ ์•Œ์•„๋‚ด๋ ค๊ณ  ์‚ฌ์šฉํ•œ๋‹ค.
  • ์œ ๋™์ ์ธ ๋ฐ์ดํ„ฐ -> ์ƒ์„ฑ or ์ œ๊ฑฐ or ์ˆ˜์ • ๊ฐ€๋Šฅ

key ์„ค์ •

  • key ๊ฐ’์„ ์„ค์ •ํ•  ๋•Œ๋Š” mapํ•จ์ˆ˜์˜ ์ธ์ž๋กœ ์ „๋‹ฌ๋˜๋Š” ํ•จ์ˆ˜ ๋‚ด๋ถ€์—์„œ ์ปดํฌ๋„ŒํŠธ props๋ฅผ ์„ค์ •ํ•˜๋“ฏ์ด ์„ค์ •
<div>
  {commentArr.map((comment) => {
    return (
      <Comment
        key={comment.id}
        name={comment.userName}
        comment={comment.content}
      />
    );
  })}
</div>
  • key์˜ ๊ฐ’์€ ์–ธ์ œ๋‚˜ ์œ ์ผํ•ด์•ผ ํ•œ๋‹ค => ๋ฐ์ดํ„ฐ๊ฐ€ ๊ฐ€์ง„ ๊ณ ์œณ๊ฐ’์„ key๋กœ ์„ค์ •ํ•ด์•ผ ํ•œ๋‹ค.