์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- fetch API
- history api
- ๋ฐ๋ธ์ฝ์ค
- ์๋ฐ์คํฌ๋ฆฝํธ
- REACT
- ํ๋ก ํธ์๋
- Gatsby
- ๋ธ๋ก๊ทธ
- Props
- CSS
- float
- Flex
- useRef
- position
- ํ๋ก๊ทธ๋๋จธ์ค
- ์๊ณ ๋ฆฌ์ฆ
- useEffect
- ์ฝ๋ฉํ ์คํธ
- ๋ฐ๋ธ์ฝ์ค3๊ธฐ
- Today
- Total
Daehyunii's Dev-blog
์ปดํฌ๋ํธ ๋ฐ๋ณต ๋ณธ๋ฌธ
map( ) ํจ์์ ํ์ฉ
map ํจ์๋ ํ๋ผ๋ฏธํฐ๋ก ์ ๋ฌ๋ ํจ์๋ฅผ ์ฌ์ฉํด์ ๋ฐฐ์ด ๋ด ๊ฐ ์์๋ฅผ ์ํ๋ ๊ท์น์ ๋ฐ๋ผ ๋ณํํ ํ ๊ทธ ๊ฒฐ๊ณผ๋ก ์๋ก์ด ๋ฐฐ์ด์ ์์ฑํด ๋ฐํํ๋ค.
map( ) ํจ์์ ๋ฌธ๋ฒ์ ๋ค์๊ณผ ๊ฐ๋ค.
์ฒซ ๋ฒ์งธ ์ธ์๋ ์ฝ๋ฐฑ ํจ์๋ฅผ ๋ฐ๋๋ค.
์ฝ๋ฐฑ ํจ์์ ์ธ์๋ก๋ (value, index, array) ์ธ ๊ฐ์ง๋ฅผ ๋ฐ๋๋ค.
-value: ํ์ฌ ๋ฐ๋ณต๋๊ณ ์๋ array์์ ๊ฐ
-index: ํ์ฌ ๋ฐ๋ณต๋๊ณ ์๋ array์์์ index๊ฐ
-array: ํ์ฌ ๋ฐ๋ณต๋๊ณ ์๋ ๋ฐฐ์ด ๊ทธ ์์ฒด
ex) array.map((value,index,array) => { })
๋ ๋ฒ์งธ ์ธ์๋ callback ํจ์ ๋ด๋ถ์์ ์ฌ์ฉํ this ๋ ํผ๋ฐ์ค๋ฅผ ๋ฐ๋๋ค.
const numbers = [1, 2, 3, 4, 5];
const doubleNumbers = numbers.map((v) => {
return v * 2;
});
console.log(doubleNumbers); // [2, 4, 6, 8, 10];
์ด๋ฌํ ๋ฐฉ๋ฒ์ ์ด์ฉํด์ ์ปดํฌ๋ํธ๋ก ๊ตฌ์ฑ๋ ๋ฐฐ์ด์ ์์ฑํ ์๋ ์๋ค. ์ค๋ช ๋ณด๋ค๋ ์์๋ฅผ ๋ณด๋๊ฒ์ด ๋ ์ง๊ด์ ์ผ๋ก ์ดํดํ๊ธฐ ์ฌ์ธ ๊ฒ ๊ฐ๋ค. ๋ค์ ์ฝ๋๋ฅผ ๋ณด์.
const names = ['woo', 'park', 'kim', 'lee']
{names.map((name, index) => <li key={index}>{name}</li>};
์ด๋ฌํ ๋ฐฉ๋ฒ์ผ๋ก ๋ฐ๋ณต์ ํตํด์ ํด๋น ๋ฐ์ดํฐ๋ฅผ JSX ์ฝ๋๋ก ๋ ๋ฐฐ์ด์ ์๋ก ์์ฑํ ์ ์๋ค. ์ด๋ฅผ ํตํด ์ปดํฌ๋ํธ์ ๋ ๋๋ง์ ํ๋ฉด ๋งค์ฐ ๊ฐ๋จํ๊ฒ ์ฝ๋๋ฅผ ์์ฑํ ์ ์๋ค. ๊ทธ๋ฆฌ๊ณ ๊ฐ์ฅ ์ค์ํ ์ ์ map() ๋ฉ์๋๋ ์๋ก์ด ๋ฐฐ์ด์ ์์ฑํด์ ๋ฐํํ๋ค๋ ์ ์ด๋ค. push๋ฉ์๋์ ๊ฒฝ์ฐ์๋ ์๋ณธ ๋ฐฐ์ด์ ๋ณ๊ฒฝํ๊ฒ ๋๋ค. ์ด ๋์ ์ฐจ์ด์ ์ ์๋ก์ด ๋ฐฐ์ด์ด ์์ฑ๋๋๋ ์๋ณธ ๋ฐฐ์ด์ ์ํ๋ฅผ ๋ณ๊ฒฝํ๋๋์ธ๋ฐ, ๋ฆฌ์กํธ์์๋ ์ด ์ ์ด ๋งค์ฐ ์ค์ํ๋ค. ๊ทธ๋ฆฌ๊ณ ๋ฆฌ์กํธ์์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฐ์ดํธ ํด์ค ๋๋ ํญ์ ์๋ก์ด(New) ๋ฐ์ดํฐ๋ก ์ ๋ฐ์ดํธ๋ฅผ ํด์ฃผ์ด์ผ ํ๋ค. ์ด๋ฅผ ๋ถ๋ณ์ฑ ์ ์ง๋ผ๊ณ ํ๋๋ฐ ๋ถ๋ณ์ฑ์ ์ ์งํด ์ฃผ์ด์ผ ๋์ค์ ๋ฆฌ์กํธ ์ปดํฌ๋ํธ์ ์ฑ๋ฅ์ ์ต์ ํํ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค. ์ฆ, ๊ธฐ์กด DOM๊ณผ์ ๋น๊ต๋ฅผ ๋ณด๋ค ์ฝ๊ฒ ํ๊ธฐ ์ํด์๋ผ๊ณ ๋๋ ์ดํดํ๋ค. ๊ทธ๋์ map( )๋ฉ์๋๋ ๋ฆฌ์กํธ์์ ๋งค์ฐ ์ ์ฉํ๋ค๊ณ ์๊ฐํ๋ค.
์ฌ๊ธฐ์ ๋ ์ฃผ์ํด์ผํ ์ ์ด ํ ๊ฐ์ง ์๋ค! ๋ฐ๋ก map( )์ ํตํด ์์ฑ๋๋ ์ปดํฌ๋ํธ ๋ฐฐ์ด์ prop์ผ๋ก key๋ฅผ ์ค์ ํด ์ฃผ์ด์ผ ํ๋ค. ์ด key๋ ๊ณ ์ ํ ๊ฐ์ด์ด์ผ ํ๋ค.
key๋ฅผ ์ ์ค์ ํด์ผํ ๊น? key๊ฐ ์๋ ๊ฒฝ์ฐ์๋ ๋ฆฌ์กํธ Virtual DOM์ ๋น๊ตํ๋ ๊ณผ์ ์์ ๋ฆฌ์คํธ๋ฅผ ์์ฐจ์ ์ผ๋ก ๋น๊ตํ๋ฉด์ ๋ณํ๋ฅผ ๊ฐ์งํ๋ค. ํ์ง๋ง key๊ฐ ์๋ค๋ฉด ์ด ๊ฐ์ ์ฌ์ฉํ์ฌ ์ด๋ค ๋ณํ๊ฐ ์ผ์ด๋ฌ๋์ง ๋์ฑ ๋น ๋ฅด๊ฒ ์์๋ผ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค.
key๋ฅผ ์ค์ ํ๋ ๋ฐฉ๋ฒ์ ์์ ๋กญ๊ฒ ์ค์ ํ๋๊ฒ์ด ์ข์ง๋ง ๊ณ ์ ํ ๊ฐ์ผ๋ก ์ค์ ํด์ผ ํ๋ฉฐ, index๋ฒํธ๋ ํผํ๋๊ฒ์ด ์ข๋ค. ๋ฐฐ์ด์ด ๋ณ๊ฒฝ๋๋ ๊ฒฝ์ฐ์ ํจ์จ์ ์ผ๋ก ๋ฆฌ๋ ๋๋งํ์ง ๋ชปํ๊ธฐ ๋๋ฌธ์ด๋ค. ๋ณ๋๋ก id ๋ฐ์ดํฐ๋ฅผ ๋ง๋ค์ด ์ฌ์ฉํด๋ ์ข๊ณ , uidd ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํด id๋ฅผ ํ์ฉํ๋ ๋ฐฉ๋ฒ๋ ์๋ค.
์ง๊ธ๊น์ง ๋ฆฌ์กํธ ์ปดํฌ๋ํธ ๋ฐ๋ณต์ ๋ํด์ ์์๋ณด์๋ค๐
'๐ Language & CS knowledge > React' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ปดํฌ๋ํธ์ ๋ผ์ดํ์ฌ์ดํด ๋ฉ์๋ (0) | 2022.12.23 |
---|---|
์ผํญ ์กฐ๊ฑด ์ฐ์ฐ์ vs filter( ) ๋ฉ์๋ ์ฝ๋ ๊ฐ๋ ์ฑ ๋น๊ต (0) | 2022.12.22 |
ํ์ด์ง์์ ํด๋ฆญ์ ๋ฐ์ดํฐ ๋ณต์ฌํ๊ธฐ (0) | 2022.12.22 |
ref: DOM์ ์ด๋ฆ ๋ฌ๊ธฐ (0) | 2022.12.22 |
์ด๋ฒคํธ ํธ๋ค๋ง (0) | 2022.12.22 |