ํค๋ DOM ์์๋ฅผ ํ์ธํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ์ ์ผํ ๊ฒ์ด๋ค.
Virtual DOM์ ๋น๊ตํ๋ ๊ณผ์ ์์ key๊ฐ ์๋ค๋ฉด ๋์ฑ ๋น ๋ฅด๊ฒ ์์๋ผ ์ ์๋ค.
ํค๊ฐ ์ด์ ๊ณผ ๊ฐ์ผ๋ฉด React๋ DOM ์์๊ฐ ์ด์ ๊ณผ ๋์ผํ ๊ตฌ์ฑ ์์๋ฅผ ๋ํ๋ธ๋ค๊ณ ๊ฐ์ ํ๋ค.
key ๊ฐ์ ์ค์ฒฉ๋๋ฉด ์๋๋ค. key ๊ฐ์ ์ธ์ ๋ ์ ์ผํด์ผํ๋ค.
๋ฆฌ์คํธ ํญ๋ชฉ์ ๋ช ์์ ์ผ๋ก key๋ฅผ ์ง์ ํ์ง ์์ผ๋ฉด React๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ธ๋ฑ์ค๋ฅผ key๋ก ์ฌ์ฉํ๋ค.
key์ ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๊ถ์ฅํ์ง ์๋๋ค.
๋ฐ๋ณต๋๋ ๋ฆฌ์คํธ๋ ์์ดํ ์ key๋ก index๋ฅผ ์ฌ์ฉํ์์ ๋ ๋ฆฌ์คํธ๋ฅผ ๋ฐ๋ณตํ๋๋ฐ ์ฐ์ด๋ ๋ฐฐ์ด์์ ์์๊ฐ ์์ฑ,์ ๊ฑฐ,๋ณ๊ฒฝ๋์์ ๊ฒฝ์ฐ key๊ฐ ์ด๋ฅผ ์ถ์ ํ๊ธฐ ์ด๋ ต๊ธฐ ๋๋ฌธ์ด๋ค.
import React from "react";
const Test = () => {
const fruits = ["apple", "banana", "carrot"];
return (
<div>
{fruits.map((fruit,index) => (
<li key={fruit}>{fruit}</li>
))}
</div>
);
};
export default Test;
๋ฐ๋ณต๋๋ ์ฌ๋ฌ๊ฐ์ ์์๋ฅผ ๋์ดํ ๋ key๊ฐ์ ์
๋ ฅํด์ค๋ค.
์ด์ ๋ key๋ ์์์ ๋ณํ ์ถ์ ์ ๋ ๋นจ๋ฆฌ ํ ์ ์๊ฒ ๋์์ฃผ๊ธฐ ๋๋ฌธ์ด๋ค.
์ด ๋ ์์์ ์ธ๊ธํ๋ฏ์ด ๋๋๋ก์ด๋ฉด index(map์ ๋๋ฒ์งธ ํ๋ฆฌ๋ฏธํฐ)๋ฅผ ํค ๊ฐ์ผ๋ก ํ ๋นํ์ง ์๋ ๊ฒ์ด ์ข๋ค.
๊ทธ๋ ๋คํด๋ index๋ฅผ key ๊ฐ์ผ๋ก ์จ๋ ๊ด์ฐฎ์ ๊ฒฝ์ฐ๋ ๋ค์๊ณผ ๊ฐ๋ค.
1. ๋ฐฐ์ด๊ณผ ์์๋ค์ด ๊ณ์ฐ๋๊ฑฐ๋ ๋ณ๊ฒฝ๋์ง ์์ ๋
2. ๋ฐฐ์ด์ด ์ฌ์ ๋ ฌ์ด๋ ํํฐ๋ง์ด ๋์ง ์์ ๋