TIL - 21.07.11 πŸ‘¨β€πŸ’» - React

μ„±ν›ˆΒ·2021λ…„ 7μ›” 11일
0

TIL

λͺ©λ‘ 보기
26/59
post-thumbnail

TIL - 21.07.11 πŸ‘¨β€πŸ’»

React Router DOM μΆ”κ°€


Route μ»΄ν¬λ„ŒνŠΈ

라우트 μ»΄ν¬λ„ŒνŠΈλ₯Ό μ΄μš©ν• λ•Œ <Route path='/:key'> 와 같이 μ½œλ‘ μ„ μ΄μš©ν•  수 μžˆλ‹€.
μ½œλ‘ μ„ μ΄μš©ν•˜λ©΄ key μžλ¦¬μ— λ“€μ–΄κ°„ 값을 '/' νŽ˜μ΄μ§€μ—μ„œ λ°›μ•„μ˜¬ 수 μžˆλ‹€.
μžλ£Œν˜•μ€ κ°μ²΄ν˜•μœΌλ‘œ λ°›μ•„μ˜€λ©° React Route Dom의 useParams μ»΄ν¬λ„ŒνŠΈλ₯Ό μ΄μš©ν•΄μ„œ 객체의 ν”„λ‘œνΌν‹°λ‘œ μ‚¬μš©ν•  수 μžˆκ²Œλœλ‹€.


let Comp = () => {
  let Hello = () => {
    return ( <h2>`${useParams().anykey}`</h2> 
    )
  }
  return (
    <div>
      <BrowserRoute>
        <h1>route example</h1>
        <Switch>
          <Route path='/:anykey'>
            <Hello />
          </Route>
        </Switch>
      </BrowserRoute>
    </div>
  )
}

// add.ress/sunghoon 으둜 μ ‘μ†ν•˜λ©΄
// route example 의 λŒ€μ œλͺ© 밑에 sunghoon이 μ†Œμ œλͺ©μœΌλ‘œ μžˆλŠ” νŽ˜μ΄μ§€κ°€ 좜λ ₯λœλ‹€.
  

REST API

urlκ³Ό λ©”μ†Œλ“œλ‘œ CRUD μš”μ²­ν•˜λŠ” 것.

Create: POST
Read: GET
Update: PUT
Delete: DELETE


useEffect()

μ–΄λ–€ μƒνƒœ 값이 λ°”λ€Œμ—ˆμ„λ•Œ λ™μž‘ν•˜λŠ” ν•¨μˆ˜ 값을 λ§Œλ“€ 수 μžˆλ‹€.

useEffect()λŠ” 두가지 λ§€κ°œλ³€μˆ˜λ₯Ό 가진닀.
첫번째 λ§€κ°œλ³€μˆ˜λŠ” 정보 μ—…λ°μ΄νŠΈκ°€ μ΄λ£¨μ–΄μ‘Œμ„λ•Œ μž‘λ™ν•  ν•¨μˆ˜μ΄κ³ ,
λ‘λ²ˆμ§Έ λ§€κ°œλ³€μˆ˜λŠ” μ˜μ‘΄μ„± λ°°μ—΄μžλ¦¬λ‘œ μ˜μ‘΄μ„± 배열은 첫번째 λ§€κ°œλ³€μˆ˜κ°€ μ–΄λ–€ 정보(λ³€μˆ˜)κ°€ μ—…λ°μ΄νŠΈ λ˜μ—ˆμ„λ•Œ μž‘λ™ν•  것인지 μ •ν•˜λŠ” 배열이닀.

  1. λ‘λ²ˆμ§Έ λ§€κ°œλ³€μˆ˜ μžλ¦¬κ°€ μ—†λ‹€λ©΄ νŽ˜μ΄μ§€ λ‚΄μ—μ„œ μ–΄λ–€ 값이 λ°”λ€Œλ˜μ§€ useEffect의 ν•¨μˆ˜κ°€ μ‹€ν–‰λœλ‹€.
  2. λ‘λ²ˆμ§Έ λ§€κ°œλ³€μˆ˜μΈ 맀개 λ³€μˆ˜μ— λ³€μˆ˜λ₯Ό μš”μ†Œλ‘œ λ„£λŠ”λ‹€λ©΄ λ°°μ—΄μ˜ μš”μ†ŒμΈ λ³€μˆ˜κ°€ λ°”λ€”λ•Œλ§Œ ν•¨μˆ˜κ°€ μ‹€ν–‰λœλ‹€.
  3. λ§Œμ•½ 빈 배열일 경우 졜초 μ‚¬μ΄νŠΈ λ‘œλ”©λ λ•Œ ν•œλ²ˆλ§Œ ν•¨μˆ˜κ°€ μ‹€ν–‰λœλ‹€.

fetch와 .then

fetchλŠ” APIλ₯Ό λΆˆλŸ¬μ˜€λŠ” ν•¨μˆ˜μ΄λ‹€.
fetch('https://add.ress/key')와 같은 μ‹μœΌλ‘œ μ‚¬μš©ν•œλ‹€.
그리고 .then은 fetch ν•¨μˆ˜κ°€ API 데이터λ₯Ό μ „λΆ€ λΆˆλŸ¬μ™”μ„λ•Œ μž‘λ™ν•˜λŠ” ν•¨μˆ˜μ΄λ‹€.

이게 ν•„μš”ν•œ 이유λ₯Ό μ„€λͺ…ν•˜μžλ©΄ μžλ°”μŠ€ν¬λ¦½νŠΈ ν•¨μˆ˜λŠ” 동기 ν•¨μˆ˜μ™€ 비동기 ν•¨μˆ˜λ‘œ λ‚˜λ‰œλ‹€.
동기 ν•¨μˆ˜λŠ” μ½”λ“œκ°€ μœ„μ—μ„œ μ•„λž˜λ‘œ μ‹€ν–‰λ λ•Œ 싀행쀑인 ν•¨μˆ˜κ°€ μ’…λ£Œλ˜κ³ λ‚˜μ„œ λ‹€μŒ ν•¨μˆ˜κ°€ μ‹€ν–‰λ˜λŠ” ν•¨μˆ˜μ΄κ³ , 비동기 ν•¨μˆ˜λŠ” μ‹€ν–‰ν•˜κ³  λ°”λ‘œ λ‹€μŒ μ½”λ“œλ‘œ λ„˜μ–΄κ°€ λ‹€μŒ ν•¨μˆ˜λ₯Ό μ‹€ν–‰ν•˜λŠ” ν•¨μˆ˜μ΄λ‹€.

그리고 fetch ν•¨μˆ˜λŠ” λŒ€ν‘œμ μΈ 비동기 ν•¨μˆ˜μ΄λ‹€.
κ·Έλž˜μ„œ API 호좜이 λλ‚˜μ§€ μ•Šλ”λΌλ„ μ½”λ“œκ°€ 계속 μ§„ν–‰λ˜κ³ , λ‹€μŒ ν•¨μˆ˜κ°€ 싀행될 수 μžˆλ‹€.

μ—¬κΈ°μ„œ 데이터λ₯Ό ν• λ‹Ήν•œλ‹€λ˜κ°€ ν•˜λŠ” ν•¨μˆ˜λ₯Ό μ¨μ•Όν• λ•Œ, API 호좜이 μ™„λ£Œλœ λ‹€μŒμ— μ‹€ν–‰λ˜μ–΄μ•Ό 데이터 μ „λΆ€λ₯Ό ν• λ‹Ήν•  수 μžˆμœΌλ‹ˆ .then ν•¨μˆ˜λ₯Ό μ΄μš©ν•΄ fetch ν•¨μˆ˜μ˜ 싀행이 μ™„λ£Œλœ λ‹€μŒ .then ν•¨μˆ˜κ°€ μ‹€ν–‰λ˜κ²Œ ν•˜λŠ” 것 이닀.

GOOD πŸ˜‰

유튜브 μ‹€μŠ΅μ„ 톡해 λ¦¬μ•‘νŠΈλž‘ μΉœν•΄μ§€λ €κ³  λ…Έλ ₯ 쀑이닀.

BAD πŸ˜₯

날이 λ„ˆλ¬΄ λ”μ›Œμ„œ μ˜€ν›„μ— 아무것도 λͺ»ν–ˆλ‹€.
방에 에어컨이 μ—†μ–΄

TO DO πŸ”₯

  • React
    • props와 state κ°œλ… 볡슡
    • λ…Έλ§ˆλ“œμ½”λ” λ¦¬μ•‘νŠΈ 클둠코딩
    • μ½”λ”©μ•™λ§ˆ 유튜브 λ§ˆμ € 보기

Retrospect 🧐

여름은 미친 κ³„μ ˆμ΄ μ•„λ‹Œκ°€ μ‹Άλ‹€.

μ•„λ¬΄λž˜λ„ 졜근 3λ…„ 1λ…„ 365일 에어컨 λΉ΅λΉ΅ν•˜κ³  λ°”λ‹₯ λœ¨λˆν•œ ν™˜κ²½μ—μ„œ μ‚΄λ‹€κ°€ ν˜Ήλ…ν•œ κ³ ν–₯μ§‘μœΌλ‘œ λŒμ•„μ˜€λ‹ˆ 날씨가 λ„ˆλ¬΄ 적응이 μ•ˆλœλ‹€.

μž‘λ…„ 10μ›” 쯀에 λŒμ•„μ™”λŠ”λ°, 겨울이라 그땐 μ‚΄λ§Œν–ˆλ‹€.
근데 여름이 λ˜λ‹ˆκΉŒ μ•ˆκ·Έλž˜λ„ 에어컨 방에 μ—†λŠ”λ° μ—΄ λΏœλŠ”κ²Œ ( λ…ΈνŠΈλΆ, λͺ¨λ‹ˆν„°, λ…μ„œλ“±, 선풍기, λ‚˜) λ„ˆλ¬΄ λ§Žμ•„ 방이 λ„ˆλ¬΄ λ₯λ‹€.

κ°€μ‘±λ“€μ΄λž‘ μ–΄λ–»κ²Œ νƒ€ν˜‘μ„ λ΄μ„œ 방에 에어컨을 λ‹¬λ˜κ°€ ν•΄μ•Ό 이 미친 κ³„μ ˆμ„ 버틸 수 μžˆμ„ 것 κ°™λ‹€.

이 미친 κ³„μ ˆμ΄ 빨리 μ§€λ‚˜κ°€κΈΈ..

내일 아침에 λ…Έλ§ˆλ“œμ½”λ” λ¦¬μ•‘νŠΈ 일뢀 λ“£κ³ , μ•Œκ³ λ¦¬μ¦˜ λ‘λ¬Έμ œ ν’€κ³  ν”„λ‘­μŠ€ μŠ€ν…Œμ΄νŠΈ κ°œλ… λ‹€μ‹œ λ³΅μŠ΅ν•œ λ‹€μŒ μ‹€μŠ΅ν• κ±° λ‹€ ν•˜κ³  λ‹€μ‹œ λ…Έλ§ˆλ“œμ½”λ” λ“€μ–΄μ•Όκ² λ‹€.

내일은 μ§€μΌœλ³΄μž.

Reference πŸ™‡

μ½”λ”©μ•™λ§ˆλ‹˜ 유튜브 - https://www.youtube.com/channel/UCxft4RZ8lrK_BdPNz8NOP7Q
https://developer.mozilla.org/

profile
μ–΄λ–»κ²Œ 이걸 ν’€μ–΄λ‚Ό 수 μžˆμ„κΉŒ

0개의 λŒ“κΈ€