728x90
λ°μν
π‘ μ€μ΅ ν¬μΈνΈ!
- μ΄λκΉμ§μ μ€μ΅μμλ μμ κ°μ΄ κ²μκΈ λ¦¬μ€νΈλ₯Ό λΈλΌμ°μ μ λνλ΄κΈ° μν΄ list λΌλ className μ κ°μ§ div νκ·Έλ€μ κ°κ° νλμ½λ©μ νμλ€.
- νμ§λ§ λ°μ΄ν°μ μμ΄ λμ΄λ μλ‘ νλμ½λ©μ νκΈ°λ νλ€κ±°λμ νμΌ λ΄μ μ½λκ° λ무 κΈΈμ΄μ Έ κ°λ μ±μ΄ λ¨μ΄μ§λ€.
- λ°λΌμ, λ°λ³΅λ¬Έμ νμ©νμ¬ μ½λμ κΈΈμ΄λ₯Ό μ€μ΄κ³ νμ₯μ±μ λν΄μ£Όμλ€.
π map() ν¨μ νμ©νκΈ°
- React μμλ μ€κ΄νΈλ₯Ό νμ©νλ JSX λ¬Έλ²μ μ¬μ©νλλ°, μ€κ΄νΈ μμλ λ³μμ ν¨μλ§ λ€μ΄κ° μ μκΈ° λλ¬Έμ for λ¬Έμ μ§μ μ μΌλ‘ λ£μ΄μ μ¬μ©ν μ μλ€.
- νμ§λ§, array μλ£νμ λΆμΌ μ μλ map() μ΄λΌλ λ΄μ₯ν¨μλ₯Ό νμ©νλ©΄ λ°λ³΅λ¬Έμ μ¬μ©ν κ²κ³Ό κ°μ ν¨κ³Όλ₯Ό μ€ μ μλ€.
π€ map() ν¨μ μμ보기
- map() ν¨μλ λͺ¨λ array μλ£νμ λΆμΌ μ μμΌλ©°, μκ΄νΈ μν€ μ½λ°±ν¨μλ₯Ό λ£λ κ² κΈ°λ³Έ ꡬμ±μ΄λ€.
- κ·Έλ¬λ©΄ map μμ μ½λκ° array μλ£νμ μλ£λ€ νλνλμ μ μ© λ° μ€νλλ€.
(λ°λΌμ, μ½λλ array μλ£νμ μλ£ κ°μλ§νΌ λ°λ³΅νμ¬ μ€νλλ€.)
let array = [1, 2, 3, 4];
array.map(function(i){
// λ°λ³΅νμ¬ μ€νν μ½λ
return i * 10
});
- μ½λ°±ν¨μμ μκ΄νΈ μμ μ무 μ΄λ¦μ΄λ μ ν΄μ νλΌλ―Έν°λ‘ λ£μ΄μ£Όλ©΄, ν΄λΉ νλΌλ―Έν°κ° array μμ μλ λͺ¨λ μλ£λ€μ νλμ© μΆλ ₯ν΄μ€λ€. (λλ νλΌλ―Έν° μ΄λ¦μ i λ‘ μ ν΄μ£Όμλ€.)
- κ·Έλ¬λ©΄ κ·Έ μΆλ ₯λ μλ£ νλνλμ μ½λκ° μ μ© λ° μ€νλλ€. (λλ * 10 μ νλΌκ³ μμ±νμλ€.)
- array μμ λͺ¨λ μλ£ κ°μλ§νΌ μ½λκ° μ€νλκ³ λλ©΄ κ°κ° 10μ© κ³±ν΄μ Έμ array λ [10, 20, 30, 40] μ΄ λλ€.
let array = [1, 2, 3, 4];
let newArray = array.map(function(i){
// λ°λ³΅νμ¬ μ€νν μ½λ
return i * 10
});
console.log(array); // [1, 2, 3, 4];
console.log(newArray); // [10, 20, 30, 40];
- μ£Όμν μ μ map() ν¨μκ° μλ³Έ μλ£λ₯Ό λ³κ²½νλ κ²μ΄ μλλ―λ‘ λ³κ²½λ λ΄μ©μ΄ μ μ©λ array μλ£νμ μ μ₯νμ¬ λ€λ₯Έ κ³³μμ μ¬μ©νκ³ μΆλ€λ©΄ μλ‘μ΄ λ³μμ λ΄μμ μ¬μ©ν΄μΌ νλ€.
π€ JSX λ¬Έλ² λ΄μμ λ°λ³΅λ¬Έμ²λΌ map() ν¨μ μ¬μ©νκΈ°
function App() {
let [title, setTitle] = useState([
'[React] React μ€μΉμ κ°λ°νκ²½ μ
ν
νκΈ°',
'[React] JSX λ₯Ό μ΄μ©ν΄ HTML νμ΄μ§ μ μν΄λ³΄κΈ°',
'[React] React μμ state λ³κ²½ν΄λ³΄κΈ°'
]);
return (
<div className="App">
{
title.map(function(content){
return (
<div className='list'>
<h3>{content}</h3>
<p>2022-03-18</p>
<hr/>
</div>
)
})
}
</div>
);
}
- Component μ return λ¬Έ μμ μλ νκ·Έλ€μ λ³΄κ³ map() ν¨μλ₯Ό μ¬μ©νμ¬ λ£μ νκ·Έλ€μ΄ λ€μ΄κ° μμΉλ₯Ό 골λΌμ€λ€.
- μμΉλ₯Ό μ νμΌλ©΄ μ€κ΄νΈλ₯Ό μ΄ λ€μ μ€κ΄νΈ μμ map() ν¨μλ₯Ό μ¬μ©νμ¬ μ½λλ₯Ό μμ±ν΄μ£Όλ©΄ λλ€.
- title μ΄λΌλ state λ array μλ£νμ΄λ©°, κ° μλ£λ₯Ό content λ‘ κΊΌλ΄μ΄ h3 νκ·Έμ λ£μ΄μ£Όμλ€.
(μΆμ² λ²νΌ λΆλΆμ κΈ°λ₯μ΄ λ―Έμμ±μ΄λΌ μ½λ μμ±μμλ μ μΈνλ€.)
π for λ¬Έ νμ©νκΈ°
- map() ν¨μλ₯Ό μ¬μ©νμ§ μκ³ for λ¬Έμ μ¬μ©νλ λ°©λ²λ μμλλ©΄ μ μ©νλ€.
- React μμ μΌλ°μ μΈ for λ¬Έμ μ¬μ©νκ³ μΆλ€λ©΄ λ°λ‘ ν¨μλ‘ λ§λ€μ΄μ μ¨μΌ νλ©° λ°©λ²μ μλμ κ°λ€.
- λ°λ‘ μΌλ° ν¨μλ₯Ό λ§λ λ€.
- ν¨μ μμ νκ·Έλ€μ λ΄μ array μλ£νμ νλ μΆκ°νλ€.
- ν¨μ μμμ for λ¬Έμ μ΄μ©ν΄ μΆκ°ν array μλ£νμ νκ·Έλ€μ μΆκ°νλ€.
- λ°λ³΅λ¬Έμ΄ λλλ©΄ μμ±λ array λ₯Ό return ν΄μ€λ€.
- Component λ΄μ return λ¬Έμ λ΄κΈ΄ νκ·Έλ€μ λ³΄κ³ λ§λ€μ΄λμ ν¨μκ° λ€μ΄κ° μμΉλ₯Ό κ³¨λΌ { ν¨μλͺ ( ) } ννλ‘ λ°μ΄ν°λ°μΈλ©μ ν΄μ λ£μ΄μ€λ€.
function App() {
let [title, setTitle] = useState([
'[React] React μ€μΉμ κ°λ°νκ²½ μ
ν
νκΈ°',
'[React] JSX λ₯Ό μ΄μ©ν΄ HTML νμ΄μ§ μ μν΄λ³΄κΈ°',
'[React] React μμ state λ³κ²½ν΄λ³΄κΈ°'
]);
function repeatTitle(title) {
let arr = [];
for (let i = 0; i < title.length; i++) {
arr.push(
<div className='list'>
<h3>{title[i]}</h3>
<p>2022-03-18</p>
<hr/>
</div>
)
}
return arr;
}
return (
<div className="App">
{repeatTitle(title)}
</div>
);
}
- λμ κ²½μ° repeatTitle() μ΄λΌλ μ΄λ¦μ ν¨μλ₯Ό λ§λ€μ΄μ£Όμλ€.
- ν¨μ μμλ νκ·Έλ€μ λ΄μ arr λΌλ μλ£νμ μΆκ°ν΄μ£Όμλ€.
- κ·Έλ¦¬κ³ for λ¬Έμ λ°μμ¨ νλΌλ―Έν°μ κΈΈμ΄λ§νΌ λ°λ³΅νμ¬ νμν νκ·Έλ€μ push() ν¨μλ₯Ό ν΅ν΄ arr μ λ΄μμ£Όμλ€.
- h3 νκ·Έμλ νλΌλ―Έν°λ‘ λ€μ΄μ¨ λ°°μ΄μ μμλ€μ΄ νλΌλ―Έν°[0], νλΌλ―Έν°[1].. μ΄λ° μμΌλ‘ μμλλ‘ νλμ© λ€μ΄κ°μΌ νλλ° νλΌλ―Έν°μ μ΄λ¦μ΄ title μ΄λ―λ‘ { title[i] } λ‘ μ½λλ₯Ό μμ±νλ€.
- for λ¬Έμ΄ λλ ν arr λ₯Ό return ν΄μ£Όλ©΄ ν¨μλ λμ΄ λλ€.
- μ΄μ μμΉλ₯Ό μ ν΄μ£Όμ΄μΌ νλλ°, λλ App μ΄λΌλ className μ κ°μ§ div νκ·Έ μμ λ£μ΄μ£Όμλ€.
- κ·Έλ¦¬κ³ repeatTitle() ν¨μλ title μ΄λΌλ state λ₯Ό νλΌλ―Έν°λ‘ λ°μμ¬ κ²μ΄λ―λ‘ { repeatTitle(title) } λ‘ μ½λλ₯Ό μμ±ν΄μ£Όμλ€.
728x90
λ°μν
'[κ°λ°] Practice > React' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[React] μΆμ² λ²νΌ κΈ°λ₯ μ€λ₯ μμ νκΈ° (0) | 2022.03.22 |
---|---|
[React] props λ₯Ό μμ©ν μμΈνμ΄μ§ λ§λ€κΈ° (0) | 2022.03.21 |
[React] ν΄λ¦νλ©΄ λμνλ UI (λͺ¨λ¬μ°½) λ§λ€μ΄λ³΄κΈ° (0) | 2022.03.20 |
[React] React μμ state μ¬μ©ν΄λ³΄κΈ°_2 (0) | 2022.03.18 |
[React] React μμ state μ¬μ©ν΄λ³΄κΈ° (0) | 2022.03.18 |