๋ชฉ์ฐจ
์ด์ ๊ธ โผ
0. 2023.05.05 - [๐ | WEB DEV/React] - [React] 0. React๋ฅผ ์ฌ์ฉํ๋ ์ด์ & ์ด๊ธฐ ์ธํ
1. 2023.05.07 - [๐ | WEB DEV/React] - [React] 1. JSX
2. 2023.05.26 - [๐ | WEB DEV/React] - [React] 2. state (๋ณ์, array, object)
2-1. 2023.05.27 - [๐ | WEB DEV/React] - [React] 2-1. array state ์ ๋ ฌํ๊ธฐ ( .sort()ํ์ฉ)
3. 2023.05.28 - [๐ | WEB DEV/React] - [React] 3. ์ปดํฌ๋ํธ (Component)
4. 2023.05.28 - [๐ | WEB DEV/React] - [React] 4. ๋์ ์ธ UI ์ ์ํ๊ธฐ
html ์์ฑ์ ์ด๋ ํ ๋ถ๋ถ์์ ํ ํ๋ฆฟ์ด ๋ฐ๋ณต๋๋ ๊ฒฝ์ฐ๊ฐ ์๋ค.
์ด๋ฌํ ๋ฐ๋ณต์ ํจ๊ณผ์ ์ผ๋ก ์ค์ด๋ ๋ฐฉ๋ฒ์ ์์๋ณด์.
1. map ์์๋ณด๊ธฐ
๋ค์ด๊ฐ๊ธฐ ์ ์ mapํจ์์ ๋ํด์ ์์๋ณด์.
array ์๋ฃํ์ ์ฌ์ฉํ ์ ์๋ ๋ฉ์๋์ด๊ณ ๊ทธ ํ์ฉ๋ฒ์ ์๋์ ๊ฐ๋ค.
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/map
arr.map((์์)=>{ ... })
arr.map((์์, ์ธ๋ฑ์ค)=>{ ... })
arr.map(์ฝ๋ฐฑํจ์)
arr.map(์ฝ๋ฐฑํจ์, thisArg)
arr.map(function(์์){ ... })
arr.map(function(์์, ์ธ๋ฑ์ค){ ... })
// ...etc
์ฝ๋ฐฑํจ์๋ก ํ์ดํ ํจ์, function ๋ชจ๋ ์ฌ์ฉํ ์ ์๋ค.
๊ธฐ๋ฅ
1. array ๋ด ์์ ๋ค์ ๋ํด ๊ฐ๊ฐ ์ฝ๋ฐฑํจ์๋ฅผ ํธ์ถํ๋ค. (์ฆ, ์์์ ๊ฐ์๋งํผ ์คํ)
2. ์ฝ๋ฐฑํจ์์ ๋งค๊ฐ๋ณ์๋ฅผ ํตํด array์ ๊ฐ ์์๋ฅผ ๋๊ฒจ์ค ์ ์๋ค.
3. return ํ ๊ฒฝ์ฐ ๊ฐ ์์๋ค์ ๋ํ ์ฒ๋ฌ ํ, ๊ทธ ๊ฐ๋ค์ ๋ชจ์์ array์ ํํ๋ก ๋ฐํํ๋ค.
์์
let arr = [1, 2, 3];
arr.map(function(){
console.log('A');
});
>>> A
>>> A
>>> A
let arr = [1, 2, 3];
arr.map(function(element){
console.log(element);
});
>>> 1
>>> 2
>>> 3
let arr = [1, 2, 3];
let arr2 = arr.map(function(element){
return element*10;
});
console.log(arr2);
>>> [10, 20, 30]
2. map ํ์ฉํ๊ธฐ
์์์ ์์๋ณธ map()์ ํ์ฉํ์ฌ ๋ฐ๋ณต๋๋ ์ฝ๋๋ฅผ ์ถ์ฝํด๋ณด์.
...
{
Array.map(function(){
return(
... // ๋ฐ๋ณต๋๋ html ๋ธ๋ก
)
})
}
...
์ด๋ฌํ ํํ๋ก ์ฝ์ ํ๋ค.
์์
{
music.map(function(a, i){ //a๋ ์์, i๋ ์ธ๋ฑ์ค
return(
<div className="music-list" key={i} onClick={()=>{modal === 'closed' ? setModal('open'):setModal('closed')}}>
<div className="music-type">
<img className="music-type-img" src={setTypeImg(music[i].type)} alt="" />
<span className="music-type-desc">
{music[i].type}
</span>
</div>
<div className="music-info-container">
<div className="music-info">
<h3 className="music-title">{music[i].title}</h3>
<span className="music-singer">{music[i].singer}</span>
</div>
<div className="music-others-container">
<div className="music-thumbs-container">
<div className="thumbs">
<span onClick={()=>{
updateThumbs(i);
}}>๐ ์ข์์</span>
</div>
<span>{music[i].thumbs}</span>
</div>
<div className="music-stream-container">
<a href="."><img src={youtube} alt="" /></a>
<a href="."><img src={spotify} alt="" /></a>
<a href="."><img src={apple} alt="" /></a>
</div>
</div>
</div>
</div>
)
})
}
์ฝ๋ฐฑํจ์์ ๋งค๊ฐ๋ณ์๋ฅผ ์ง์ ํ๋ฉด
์์ฒ๋ผ ๋ฐฐ์ด ๋ด ๊ฐ๊ฐ์ ์์์ ์ธ๋ฑ์ค๋ฅผ ํจ์ ๋ด์์ ํ์ฉํ ์ ์๋ค.
โป ์ฃผ์ํ ์ !
<div className="music-list" key={i} ... >
map()์ผ๋ก ๋ฐ๋ณต์ํฌ ๋ธ๋ก์ key={ i } ์ ๊ฐ์ ํํ์
ํค ์์ฑ์ ์ถ๊ฐํด์ฃผ์ด์ผํ๋ค.
์ด๋ฅผ ํตํด์ React๊ฐ ๊ฐ๊ฐ์ div๋ค์ ๊ตฌ๋ถํ๋๋ก ํ ์ ์๋ค.
- ๋ง์ฝ for๋ฌธ์ ํ์ฉํ๊ณ ์ถ์ ๊ฒฝ์ฐ
for๋ฌธ์ JSX ์์์ ์ฌ์ฉํ ์ ์๋ค. ๋ฐ๋ผ์ return() ๋ฐ์์ ์์ฑํด์ฃผ์ด์ผํ๋ค.
๋จ๊ณ
1. html ๋ธ๋ก ๋ด์ array ์์ฑ
2. for๋ฌธ์ ํตํด array์ html๋ธ๋ก push
3. ์ฝ์ ํ ์์น์ { array }
์์
function App() {
let arr = [];
for (let i=0; i<5; i++){
arr.push(์ถ๊ฐํ html ๋ธ๋ก)
}
return(
<>
{ arr }
</>
)
}
'๐ | WEB DEV > React' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[React] CORS ์๋ฌ ํด๊ฒฐํ๊ธฐ (http-proxy-middleware) (0) | 2023.06.30 |
---|---|
[React] 6. props (0) | 2023.05.29 |
[React] 4. ๋์ ์ธ UI ์ ์ํ๊ธฐ (0) | 2023.05.28 |
[React] 3. ์ปดํฌ๋ํธ (Component) (0) | 2023.05.28 |
[React] 2-1. array state ์ ๋ ฌํ๊ธฐ ( .sort()ํ์ฉ) (0) | 2023.05.27 |
๋๊ธ