westagram project ์ค react๋ก ๋๊ธ ๊ธฐ๋ฅ์ ๊ตฌํํ ๋ map()
๋ฅผ ์ฌ์ฉํ์ฌ ๊ตฌํํ๊ฒ ๋์๋๋ฐ, ์คํ์์ผ ๋ณด๋ ์๋ํ๋ ๋ฐ์ ๋ฌธ์ ๋ ์์ผ๋ ์๋ฌ๊ฐ ๋ฐ์ํ๋ค.
์๋ฌ์ ๋ด์ฉ์ ๊ฐ ํญ๋ชฉ์ key๋ฅผ ๋ฃ์ด์ผ ํ๋ค
๋ ๋ด์ฉ์ฐโฆ.๐
์๋์๋ ๋ฌธ์ ๊ฐ ์์ผ๋ ์ฑ๋ฅ์ ์ผ๋ก ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋.. ํด๊ฒฐํด์ผ ํ๋ค. ๊ทธ๋ ๊ฒ ํด์ ์๊ฒ๋ map()๊ณผ Key๐ก์ ๋ด์ฉ์ ์ ๋ฆฌํด๋ณธ๋ค.
โ Key๐ก
key
๋ element list๋ฅผ ๋ง๋ค ๋ ํฌํจํด์ผ ํ๋ ํน์ํ ๋ฌธ์์ด attribute
key
๋ react๊ฐ ์ด๋ค ํญ๋ชฉ์ ๋ณ๊ฒฝ, ์ถ๊ฐ ๋๋ ์ญ์ ํ ์ง ์๋ณํ๋ ๋ฐ์ ๋์์ ์ค๋คkey
๋ element์ ์์ ์ ์ธ ๊ณ ์ ์ฑ์ ๋ถ์ฌํ๊ธฐ ์ํด array ๋ด๋ถ์ element์ ์ง์ ํด์ผ ํ๋ค
๐ key
๋ฅผ ์ ํํ๋ ๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ์?
- ๋ฆฌ์คํธ์ ๋ค๋ฅธ ํญ๋ชฉ๋ค ์ฌ์ด์์ ํด๋น ํญ๋ชฉ์ ๊ณ ์ ํ๊ฒ ์๋ณํ ์ ์๋ ๋ฌธ์์ด์ ์ฌ์ฉํ๋ ๊ฒ
- ๋๋ถ๋ถ์ ๊ฒฝ์ฐ ๋ฐ์ดํฐ์ ID๋ฅผ
key
๋ก ์ฌ์ฉ - ๋ ๋๋ง ํ ํญ๋ชฉ์ ๋ํ ์์ ์ ์ธ ID๊ฐ ์๋ค๋ฉด ์ตํ์ ์๋จ์ผ๋ก
index
๋ฅผkey
๋ก ์ฌ์ฉํ ์๋ ์์ผ๋, ํญ๋ชฉ์ ์์๊ฐ ๋ฐ๋ ์ ์๋ ๊ฒฝ์ฐ key์ index๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ์ง์!- โจ์ฐธ๊ณ โจ ๋ง์ฝ ๋ฆฌ์คํธ ํญ๋ชฉ์ ๋ช ์์ ์ผ๋ก key๋ฅผ ์ง์ ํ์ง ์์ผ๋ฉด React๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ธ๋ฑ์ค๋ฅผ key๋ก ์ฌ์ฉํ๋ ์ฐธ๊ณ !
๐ key
์ ์ฉ ๋ฐฉ๋ฒ
- (
key
๋ ์ฃผ๋ณ ๋ฐฐ์ด์ context์์๋ง ์๋ฏธ๊ฐ ์์ผ๋ฏ๋ก) ๋ฐฐ์ด ์์ key๋ฅผ ์ง์ - Key๋ ํ์ ์ฌ์ด์์๋ง ๊ณ ์ ํ ๊ฐ์ด์ด์ผ ํ๋ค
- Key๋ ๋ฐฐ์ด ์์์ ํ์ ์ฌ์ด์์ ๊ณ ์ ํด์ผ ํ๊ณ
- ์ ์ฒด ๋ฒ์์์ ๊ณ ์ ํ ํ์๋ ์๋ค
- ๋ ๊ฐ์ ๋ค๋ฅธ ๋ฐฐ์ด์ ๋ง๋ค ๋ ๋์ผํ key๋ฅผ ์ฌ์ฉํ ์ ์๋ค
โ JSX์ map()
ํฌํจ์ํค๊ธฐ
- ์ค์ ์์ฑํ ์ฝ๋์ key๋ฅผ ํฌํจ์์ผฐ๋ค
render() {
const { content, addComment } = this.state;
return (
<>
<div className="commentList">
{addComment.map((el, index) => {
return <AddComment addComment={(addComment, el)} key={index} />;
})}
</div>
๐ฌ ์๋ ์์ฑํ๋ ์ฝ๋๋ ์๋์์ผ๋.. ๋ฌด์ธ๊ฐ ๋์ ์ต์? ๋ง๋? ์ฝ๋๊ฐ ์๋๊ฒ ๊ฐ์ ๊ณ ๋ฏผํ๋ค๊ฐ ์์ ํ๋คโฆ.;;
- ์๋ ์์ฑํ๋ ์ฝ๋๋ ์์ component์์ map() ์ฌ์ฉํ๊ณ , key๊ฐ์ ์์ element์ ์ ์ฉ์์ผฐ์ผ๋
- ์ต์ข ์ ์ถํ ์ฝ๋๋ ๋ถ๋ชจ component์์ map() ์ฌ์ฉํ๊ณ key ์ ์ฉ
- ๊ณผ์ฐ ์ฝ๋ ๋ฆฌ๋ทฐ ์ ์ด๋ค ์ฝ๋ฉํธ๊ฐ ๋ฌ๋ฆด์งโฆ
[React_doc ๋ฆฌ์คํธ์ Key] (https://ko.reactjs.org/docs/lists-and-keys.html/)