728x90
λ°μν
π‘ μ€μ΅ ν¬μΈνΈ!
- μ€λμ ν΄λ¦νλ©΄ λμνλ UI, κ·Έ μ€μμ λͺ¨λ¬μ°½μ ꡬνν΄λ³΄μλ€.
- κ°μμμ λͺ¨λ¬μ°½μ λμμΈν΄λκ³ ν΄λ¦νμ λ λͺ¨λ¬μ°½μ μ¬λ λ°©λ²μ μλ €μ£Όμ ν, κ³Όμ λ‘ λ²νΌμ ν λ² λ λλ μ λ λ«νκ² ν΄λ³΄λΌκ³ νμ ¨λ€.
- λλ μ€λ νμ©νλ μΌν μ°μ°μλ₯Ό κ°μ§κ³ μ½λλ₯Ό μμ±νκ³ , κ°μ¬λμ λλν(!) κΈ°νΈλ§μ κ°μ§κ³ λ μ½κ² λ§λλ λ°©λ²μ μλ €μ£Όμ ¨λ€.
- λλν(!) κΈ°νΈμ μ°μμ μ μκ³ μλ€κ³ μκ°νλλ°, μλ κ²κ³Ό μ νμ©νλ κ²μ λ³κ°μ λ¬Έμ μμ λ€μκΈ κΉ¨λ¬μλ€...γ γ
π μμΈνμ΄μ§ κ²Έ λͺ¨λ¬μ°½ UI λ§λ€κΈ°
π€ HTML λ° CSS μ½λ μμ±νκΈ°
- HTML
<div className="modal">
<h2>μ λͺ©</h2>
<p>λ μ§</p>
<p>μμΈλ΄μ©</p>
</div>
- CSS
.modal {
margin-top: 20px;
padding: 20px;
background-color: #eee;
}
π€ HTML λ₯Ό Component λ‘ λ§λ€κΈ°
- μμμμ κ°μ΄ html νκ·Έλ€μ κ·Έλλ‘ λ£μ΄λ λμ§λ§, React μμλ 볡μ‘ν html νκ·Έλ₯Ό νλμ λ¨μ΄λ‘ μΉνν΄μ λ£μ μ μλ λ¬Έλ²μ μ 곡νκ³ μλ€.
- μ΄λ¬ν λ¬Έλ²μ Component λΌκ³ νλλ°, μ΄λ₯Ό μ΄μ©νλ©΄ ν¨μλ λ³μλ₯Ό λ§λ€ λμ²λΌ νλμ λ¨μ΄λ‘ μΉνν΄μ μνλ μμΉμ λ£μ΄μ€ μ μλ€.
function μ»΄ν¬λνΈλͺ
(){
return (
<>
<div>λ΄μ©1</div>
<div>λ΄μ©2</div>
<div>λ΄μ©3</div>
</>
)
}
- Component λ₯Ό λ§λλ λ°©λ²μ λ€μκ³Ό κ°λ€.
- function μ μ΄μ©ν΄μ ν¨μλ₯Ό νλ λ§λ€μ΄μ€λ€.
- ν΄λΉ ν¨μμ return() μμ μνλ HTML νκ·Έλ€μ λ΄μμ€λ€.
- HTML νκ·Έκ° λ€μ΄κ°μΌ νλ μμΉμ Component λͺ μ νκ·Έμ ννλ‘ λ£μ΄μ€λ€. (ex. <Modal />)
- Component λ‘ λ§λ€ λλ μ£Όμν΄μΌν μ μ΄ λͺ κ°μ§ μλ€.
- Component μ΄λ¦μ 첫 κΈμλ λλ¬Έμλ₯Ό μ¬μ©νλ€.
- return () μμλ νλμ div νκ·Έλ‘ λ¬Άμ΄μ€λ€.
(μλ―Έ μλ div νκ·Έλ₯Ό μ¬μ©ν΄μ λ¬Άμ΄μ£Όκ³ μΆμ§ μλ€λ©΄ <></> λ‘ λ¬Άμ΄λ λλ€.) - Component μμΉλ λ€λ₯Έ Component λ€κ³Ό λλν λ°°μΉν΄μ£Όμ΄μΌ νλ€.
(λ³΄ν΅ Component μ© function μμ Component μ© function μ λ§λ€μ§λ μλλ€.)
function Modal(){
return (
<div className='modal'>
<h2>μ λͺ©</h2>
<p>λ μ§</p>
<p>μμΈλ΄μ©</p>
</div>
)
}
- μ΄μ κΈ°μ‘΄μ μμ±νλ html νκ·Έλ€μ κ°μ§κ³ Modal μ΄λΌλ Component λ‘ λ§λ€μ΄μ£Όμλ€.
π ν΄λ¦νλ©΄ λμνλ UI (λͺ¨λ¬μ°½) λ§λ€μ΄λ³΄κΈ°
π€ μΌν μ°μ°μ μμ보기
// μΌν μ°μ°μ
쑰건μ ? 쑰건μμ΄ μ°ΈμΌ κ²½μ° μ€νν μ½λ : 쑰건μμ΄ κ±°μ§μΌ κ²½μ° μ€νν μ½λ
- μΌλ°μ μΌλ‘ νΉμ 쑰건μ λ§μΆ° HTML μ 보μ΄κ² νΉμ 보μ΄μ§ μκ² νλ €λ©΄ if λ¬Έμ μ¬μ©νλ©΄ λλ€.
- νμ§λ§, React μ κ²½μ° μ€κ΄νΈ λ΄μμ if λ¬Έμ μ¬μ©ν μ μμΌλ―λ‘ μμ κ°μ΄ μΌν μ°μ°μλ₯Ό νμ©ν΄μΌ νλ€.
π€ 'λͺ¨λ¬μ°½ μ΄κΈ°' λ²νΌ κΈ°λ₯ λ§λ€κΈ°
- λ¨Όμ μ½λλ₯Ό μ΄λ»κ² ꡬμ±ν μ§ μκ°ν΄λ³Έλ€.
- 맨μ²μμλ λͺ¨λ¬μ°½ UI κ° λ³΄μ΄μ§ μλλ‘ state μ΄κΈ°κ°μ μ€μ νλ€.
- state κ° λ°λλ©΄ λͺ¨λ¬μ°½ UI λ₯Ό 보μ¬μ€λ€.
- "λͺ¨λ¬μ°½ μ΄κΈ°" λ²νΌμ ν΄λ¦νλ©΄ state κ° true λ‘ λ°λκ² νλ€.
let [modal, setModal] = useState(false);
- λ¨Όμ λͺ¨λ¬μ°½ UI μ μνμ 보λ₯Ό μ μ₯ν state λ₯Ό νλ λ§λ λ€.
- λ³΄ν΅ κ²½μ°μ μκ° λ κ°μ§λ‘ λλλ κ²½μ°μλ true/false λΌλ μλ£νμ μ΄μ©νλ€.
- μ²μμλ λͺ¨λ¬μ°½ UI κ° λ³΄μ΄μ§ μκΈ°λ₯Ό μνλ―λ‘ state μ΄κΈ°κ°μ false λ‘ μ€μ ν΄μ£Όκ³ , state κ° true λ‘ λ°λλ©΄ λͺ¨λ¬μ°½ UI κ° λ³΄μ΄λλ‘ μ€μ ν΄μ€ κ²μ΄λ€.
{modal === true ? <Modal /> : null}
- μ΄μ μΌν μ°μ°μλ₯Ό νμ©ν΄μ 쑰건문μ λ§λ€μ΄μ£Όμλ€.
- modal state κ° true λΌλ©΄ Modal Component λ₯Ό 보μ¬μ£Όκ³ , false λΌλ©΄ μ무κ²λ 보μ¬μ£Όμ§ μλλ€.
- μ°Έκ³ λ‘ React μμ ν λΉ HTML μ μλ―Ένλ μ½λλ null μ΄λΌλ μλ£νμ΄λ€.
function App() {
let [modal, setModal] = useState(false);
return (
<div>
<button onClick={ ()=>{ setModal(true) } }>λͺ¨λ¬μ°½ μ΄κΈ°</button>
{modal === true ? <Modal /> : null}
</div>
);
}
- μ΄μ μνλ₯Ό λ³νμμΌμ€ 맀κ°μ²΄μΈ 'λͺ¨λ¬μ°½ μ΄κΈ°' λ²νΌμ λ£μ΄μ£Όμλ€.
- onClick μμ±μ μΆκ°νμ¬ 'λͺ¨λ¬μ°½ μ΄κΈ°' λ²νΌμ ν΄λ¦νμ λ modal μ μνκ° true κ° λλλ‘ ν΄μ£Όμλ€.
π€ λΈλΌμ°μ μμ 'λͺ¨λ¬μ°½ μ΄κΈ°' λ²νΌ ν΄λ¦νμ¬ νμΈν΄λ³΄κΈ°
- μμ±ν μ½λλ₯Ό μ μ©ν ν λΈλΌμ°μ μμ 'λͺ¨λ¬μ°½ μ΄κΈ°' λ²νΌμ ν΄λ¦ν΄λ³΄λ©΄ μμ κ°μ΄ λͺ¨λ¬μ°½μ΄ μ 보μ΄λ κ²μ νμΈν μ μλ€.
- νμ§λ§ μμμ μμ±ν μ½λλ λͺ¨λ¬μ°½μ μ΄ μλ μμ§λ§ λ«μ μ μλ€λ λ¨μ μ΄ μλ€.
- λ°λΌμ λ²νΌμ ν λ² λ ν΄λ¦νμ λ λͺ¨λ¬μ°½μ΄ λ«ν μ μκ²λ μ½λ μμ μ΄ νμνλ€.
π ν΄λ¦νλ©΄ λμνλ UI (λͺ¨λ¬μ°½) μ κ·Έλ μ΄λνκΈ°
π€ 'λͺ¨λ¬μ°½ μ¬λ«κΈ°' λ²νΌ κΈ°λ₯ λ§λ€κΈ°
- μ΄λ²μλ 'λͺ¨λ¬μ°½ μ¬λ«κΈ°' λΌκ³ λ²νΌμ λ³κ²½ν ν, ν λ² ν΄λ¦νλ©΄ λͺ¨λ¬μ°½μ΄ μ΄λ¦¬κ³ ν λ² λ ν΄λ¦νλ©΄ λͺ¨λ¬μ°½μ΄ λ«νλλ‘ κΈ°λ₯μ μμ ν΄λ³΄μλ€.
- onClick μμ±λ§ μμ μ ν΄μ£Όλ©΄ λλ λΆλΆμ΄λΌ μ΄λ ΅μ§λ μλ€κ³ μκ°νλλ° κ°μ¬λμ μ½λλ₯Ό 보λ 머리λ₯Ό ν λ λ§μ κ² κ°μλ€.
// λ΄κ° μμ±νλ μ½λ
<button onClick={ ()=>{ modal === false ? setModal(true) : setModal(false) } }>λͺ¨λ¬μ°½ μ¬λ«κΈ°</button>
- λλ μ€λ 곡λΆν μΌν μ°μ°μλ₯Ό μ¬μ©νλ€.
- modal μ true/false μ¬λΆμ λ°λΌ setModal(true) λ setModal(false) λ₯Ό ν΄μ£Όλ 1μ°¨μμ μΈ λ°©μμ΄μλ€.
- λ€λ§ μμ±νλ©΄μλ setModal() μ΄λΌλ λΆλΆμ μ½λκ° μ€λ³΅μ΄λΌ λ μ€μΌ μλ μμκΉ μκ°νκΈ°λ νλ€.
// κ°μ¬λμ΄ μμ±νμ μ½λ
<button onClick={ ()=>{ setModal(!modal) } }>λͺ¨λ¬μ°½ μ¬λ«κΈ°</button>
- κ°μ¬λμ μ½λλ κ·Έλ° λ΄ μκ°μ λ¨λ²μ ν΄κ²°ν΄μ£Όμλ€.
- state μΈ modal μμ²΄κ° true/false μ κ°μ μ μ₯νκ³ μλ€λ μ μ νμ©νμ¬ μμ setModal() ν¨μ μμ modal μ λ£μλ€.
- κ·Έλ¦¬κ³ false μΌ λλ true λ‘, true μΌ λλ false λ‘ λ°λλλ‘ λλν(!) κΈ°νΈλ₯Ό λ§μΉ ν κΈν€μ²λΌ νμ©ν μ μ΄ μΈμκΉμλ€.
π€ λΈλΌμ°μ μμ 'λͺ¨λ¬μ°½ μ¬λ«κΈ°' λ²νΌ ν΄λ¦νμ¬ νμΈν΄λ³΄κΈ°
- μ΄μ μ½λλ₯Ό μ μ©ν΄λ³΄λ©΄ λͺ¨λ¬μ°½ μ¬λ«κΈ° λ²νΌμ ν΄λ¦ν λλ§λ€, λͺ¨λ¬μ°½ μ¬λ«κΈ°κ° κ°λ₯ν¨μ νμΈν μ μλ€.
728x90
λ°μν
'[κ°λ°] Practice > React' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[React] props λ₯Ό μμ©ν μμΈνμ΄μ§ λ§λ€κΈ° (0) | 2022.03.21 |
---|---|
[React] React μμ λ°λ³΅λ¬Έ νμ©νκΈ° (0) | 2022.03.21 |
[React] React μμ state μ¬μ©ν΄λ³΄κΈ°_2 (0) | 2022.03.18 |
[React] React μμ state μ¬μ©ν΄λ³΄κΈ° (0) | 2022.03.18 |
[React] React μμ Font Awesome μ¬μ©ν΄λ³΄κΈ° (0) | 2022.03.18 |