μΉμμλ ν΄λΌμ΄μΈνΈμ μλ²κ° http νλ‘ν μ½μ ν΅ν΄ μμ²κ³Ό μλ΅μ μ£Όκ³ λ°λλ€. http μμ μ¬μ©νλ λ°©μμ μ¬λ¬κ°μ§κ° μμ§λ§ GET κ³Ό POST κ° κ°μ₯ λ§μ΄ μ¬μ©λλ€.
GET
http://example.com?a=1&b=2 μ κ°μ΄ url? λ€μ νλΌλ―Έν°λͺ =κ° ννλ‘ νμν λ°μ΄ν°λ₯Ό μ λ¬νλ©°, μ£Όλ‘ λ°μ΄ν° μ‘°νλ κ²μ λ±μ κΈ°λ₯μ μ¬μ©λλ€.
POST
http body μ λ°μ΄ν°λ₯Ό λ£μ΄μ μ λ¬νλ λ°©μμΌλ‘, url λ€μ νλΌλ―Έν° κ°μ νμνμ§ μκ³ μ¬μ©ν μ μλ€λ μ₯μ μ΄ μλ€. μ£Όλ‘ μλ²μ μνλ λ°μ΄ν°λ₯Ό λ³κ²½νλ λ±μ μν μμ μ μ¬μ©λλ€.
π₯ HTTP ν΅μ λ°©μ
Fetch / Axios / Promise
π‘ Fetch λ?
μλ°μ€ν¬λ¦½νΈ λ΄μ₯ ν¨μμΈ fetch λ₯Ό μ¬μ©νλ©΄ μ½κ² λΉλκΈ° ν΅μ μ ꡬνν μ μλ€. λΉλκΈ° ν΅μ μ΄λ μ½κ² λ§ν΄ λ¨Όμ μμν μμ μ μλ£ μ¬λΆμ μκ΄μμ΄ λ€μ μμ μ μ€ννλ κ²μ΄λ€. fetch λ₯Ό μ¬μ©ν΄μ get λ°©μμΌλ‘ url μ νΈμΆν΄ λ°μ΄ν°λ₯Ό κ°μ Έμ€κ³ κ°μ Έμ¨ λ°μ΄ν°λ₯Ό response λ³μμ ν λΉνλ€. μ΄λ fetch ν¨μμ λ³λμ http λ©μλ μ€μ μ΄ μλ€λ©΄ get λ°©μμΌλ‘ νΈμΆνλ€. μΉ λΈλΌμ°μ μμ ν μ€νΈ url μ νΈμΆνλ©΄ λ€μκ³Ό κ°μ΄ λ°μ΄ν°λ₯Ό νμΈν μ μλ€.
λΉλκΈ° ν¨μλ₯Ό μ€ννλ ν¨μμ async λ₯Ό μΆκ°νκ³ λκΈ°μ μΌλ‘ μ²λ¦¬λμ΄μΌ νλ ν¨μ μμ await μ μΆκ°νλ€.
1. Fetch Get μ¬μ©νκΈ°

Fetch Get μΉ μ€ν νλ©΄

2. Fetch Post μ¬μ©νκΈ°

Fetch Post μΉ μ€ν νλ©΄

π‘ Axios λ?
λΉλκΈ° ν΅μ μ μ§μνλ€. fetch μ λ¬λ¦¬ λ³λλ‘ μ€μΉν ν μν¬νΈν΄μ μ¬μ©ν΄μΌ νλ€.
post λ°©μμ κ²½μ° ν¨μμ νλΌλ―Έν°λ‘ json κ³Ό κ°μ ννμ λ°μ΄ν°λ₯Ό λ£κ³ html body μ λ΄μμ urlμ νΈμΆν μ μλ€.
ν¬λ‘μ€ λΈλΌμ°μ§μ μ΅μ νλμ΄ μλ€. (react μμλ fetch λ³΄λ€ axios μ νΈ)
1. axios λ₯Ό μ€μΉνλ€.
npm install --save axios
2. Axios Get μ¬μ©νκΈ°
Axios Get μ μ¬μ©ν΄λ³΄κΈ° μν App.js μ TestAxios.jsλ₯Ό μμ±νλ€.


Axios Get μΉ μ€ν νλ©΄

3. Axios Post μ¬μ©νκΈ°
Axios Post μ μ¬μ©ν΄λ³΄κΈ° μν App.js μ TestAxios.jsλ₯Ό μμ±νλ€.


Axios Post μΉ μ€ν νλ©΄

π‘ μ½λ°± ν¨μ μ¬μ©νκΈ°
μλ° μ€ν¬λ¦½νΈλ λΉλκΈ°μ μΌλ‘ λμνλ€. κ·Έλμ λ¨Όμ μ€νλ μμ μ΄ λλμ§ μμλλΌλ λ€μ μμ μ΄ μμλ μ μλ€. μ½λ°± ν¨μλ₯Ό μ΄μ©νλ©΄ νΉμ μ½λμ μμλ₯Ό μ ν΄ μνλ μμ μ μ€νν μ μλ€.
μ½λ°± ν¨μλ₯Ό μ¬μ©ν΄λ³΄κΈ° μν App.js μ CallbackTest.jsλ₯Ό μμ±νλ€.


Callback μΉ μ€ν νλ©΄

π‘ Promise λ?
Promise λ μ½λ°± ν¨μμ κ°μ΄ λΉλκΈ°μ μΌλ‘ λμνλ μ½λλ₯Ό λκΈ°μ μΌλ‘ ꡬνν λ μ¬μ©νλ€. Promise λ₯Ό μ¬μ©νλ©΄ μ½λ°± ν¨μμ λ¬λ¦¬ μ½λ κ°λ μ±μ λμΌ μ μκ³ μμΈ μ²λ¦¬λ μ½κ² ν μ μλ€.
1. Promise then μ¬μ©νκΈ°
π₯ Promise μμ then ν¨μλ μ΄μ ν¨μκ° μμ ν μλ£λμμ λ μ€νλλ€.


setTimeout λ΄μμ resolve('react') λ‘ 'react' λ₯Ό νλΌλ―Έν°λ‘ 보λ΄λ©΄ .then μμμ κ·Έ κ°μ result λΌλ νλΌλ―Έν°λ‘ λ°μμ log λ‘ μΆλ ₯νλ€.
Callback μΉ μ€ν νλ©΄

2. Promise catch μ¬μ©νκΈ°
Promise μνκ° λκΈ°, μ΄ν, κ±°λΆ μ€ κ±°λΆ μνκ° λμ λ catch ν¨μλ₯Ό μ€ννλ€. λκΈ° μνμ Promise μ μλ¬κ° λ°μν΄ μ΄νμΌλ‘ μν λ³νλ₯Ό νμ§ λͺ»νλ κ²½μ°λ€.


Callback μΉ μ€ν νλ©΄

'JavaScript > React' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[React] Redux λ? (0) | 2021.10.21 |
---|---|
[React] React μ΄λ²€νΈ μ¬μ©νκΈ° (0) | 2021.10.20 |
[React] React μμ bootstrap μ¬μ©νκΈ°(ReactStrap) (0) | 2021.10.20 |
[React] props μ¬μ©νκΈ° #1 (0) | 2021.10.13 |
[React] React.js μμνκΈ° (0) | 2021.10.13 |
λκΈ