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

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

TIL

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

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

state νŒλ³„

  1. λΆ€λͺ¨λ‘œλΆ€ν„° propsλ₯Ό 톡해 μ „λ‹¬λ˜λŠ”μ§€ 확인.
  2. μ‹œκ°„μ΄ μ§€λ‚˜λ„ λ³€ν•˜μ§€ μ•ŠλŠ”μ§€ 확인.
  3. μ»΄ν¬λ„ŒνŠΈ μ•ˆ λ‹€λ₯Έ stateλ‚˜ props둜 계산 κ°€λŠ₯ν•œμ§€ 확인.

μœ„ 세가지 보기 쀑 ν•˜λ‚˜λΌλ„ ν•΄λ‹Ήν•˜λ©΄ state둜 μ‚¬μš©ν•˜κΈ°μ— 무리가 μžˆλ‹€.


props μΆ”κ°€

stateλŠ” μ»΄ν¬λ„ŒνŠΈ λ‚΄λΆ€μ—μ„œ λ³€ν•  수 μžˆλŠ” 값이고,
propsλŠ” μ™ΈλΆ€(μƒμœ„ μ»΄ν¬λ„ŒνŠΈ)둜 λΆ€ν„° 전달 받은 값이닀.


props의 νŠΉμ§•

  1. 이름과 성별같이 λ³€ν•˜μ§€ μ•ŠλŠ” 값에 μ‚¬μš©ν•˜λŠ” μ™ΈλΆ€(μƒμœ„ μ»΄ν¬λ„ŒνŠΈ)둜 λΆ€ν„° 전달 받은 μ»΄ν¬λ„ŒνŠΈμ˜ 속성을 μ˜λ―Έν•œλ‹€.

  2. μ–΄λ– ν•œ 값도 전달할 수 μžˆλ„λ‘ propsλŠ” 객체 ν˜•νƒœμ΄λ‹€.

  3. propsλŠ” 읽기 μ „μš©μ΄λ‹€.
    propsλŠ” 이름 성별과 같이 전달받아 λ³€ν•˜μ§€ μ•ŠλŠ” 값이닀.


props의 ν”„λ‘œμ„ΈμŠ€

  1. ν•˜μœ„ μ»΄ν¬λ„ŒνŠΈμ— μ „λ‹¬ν•˜κ³ μž ν•˜λŠ” κ°’κ³Ό 속성을 μ •μ˜ν•œλ‹€.

  2. propsλ₯Ό μ΄μš©ν•΄ 1. μ—μ„œ μ •μ˜ν•œ κ°’ 속성을 μ „λ‹¬ν•œλ‹€.

    1. μ—μ„œ 받은 것을 λ Œλ”λ§ν•œλ‹€.

props μ‚¬μš©λ²•

props 데이터 μ „λ‹¬λ²•μœΌλ‘œ μƒμœ„ μ»΄ν¬λ„ŒνŠΈμ—μ„œ νƒœκ·Έμ˜ 속성 κ°’μœΌλ‘œ λ„˜κ²¨μ£ΌλŠ” 방법도 μžˆμ§€λ§Œ, μ»΄ν¬λ„ŒνŠΈμ˜ νƒœκ·Έ 사이에 μž…λ ₯ν•˜λŠ” 것도 전달할 수 μžˆλ‹€.

<Comp>something</Comp> 이런 μ‹μœΌλ‘œ μ „λ‹¬ν–ˆμ„λ•Œ, something은 Comp μ»΄ν¬λ„ŒνŠΈ λ‚΄μ—μ„œ props 객체의 children μ΄λΌλŠ” 킀에 ν• λ‹Ήλœλ‹€.


React Event Handling

λ¦¬μ•‘νŠΈμ˜ 이벀트 μ²˜λ¦¬λŠ” DOM 방식과 μœ μ‚¬ν•˜λ‚˜ λͺ‡κ°€μ§€ 문법적인 차이가 μžˆλ‹€.

  1. λ¦¬μ•‘νŠΈμ—μ„œ μ΄λ²€νŠΈλŠ” camelCase둜 μ λŠ”λ‹€.
  2. JSX둜 λ¬Έμžμ—΄μ΄ μ•„λ‹Œ ν•¨μˆ˜λ‘œ 이벀트 ν•Έλ“€λŸ¬λ₯Ό μ²˜λ¦¬ν•œλ‹€.

DOM // <button onclick='eventHandler()'>event</button>

JSX // <button onClick={eventHandler}>event</button>


onChange μΆ”κ°€

μž…λ ₯λž€μ˜ 값을 e.target.value둜 κ°€μ Έμ™€μ„œ state에 ν• λ‹Ήν•  수 μžˆλ‹€.


select

μ…€λ ‰νŠΈ νƒœκ·ΈλŠ” λ“œλ‘­ λ‹€μš΄ λͺ©λ‘μœΌλ‘œ 선택할 수 μžˆλŠ” μ˜΅μ…˜μ΄ λ‚˜μ˜€κ³ , select νƒœκ·Έμ— onClick μ˜΅μ…˜μ„ 두고 이벀트 ν•Έλ“€λŸ¬ ν•¨μˆ˜λ₯Ό μ„€μ •ν•˜λŠ” κ²ƒμœΌλ‘œ e.target.valueλ₯Ό νŠΉμ •ν•  수 μžˆλ‹€.

μ„ νƒν•˜λŠ” λͺ©λ‘μ€ select νƒœκ·Έμ˜ ν•˜μœ„μ— option νƒœκ·Έλ₯Ό λ§Œλ“œλŠ” κ²ƒμœΌλ‘œ μƒμ„±ν•œλ‹€.


React Data Flow

λ¦¬μ•‘νŠΈλŠ” top-down, 즉 μƒμœ„μ—μ„œ μ•„λž˜λ‘œ 단 λ°©ν–₯ 데이터 흐름을 λ”°λ₯Έλ‹€.


였늘 λ§Œλ‚¬λ˜ 였λ₯˜

  • ν™”μ‚΄ν‘œ ν•¨μˆ˜ μ‚¬μš©ν• λ•Œ ν™”μ‚΄ν‘œ 이후 μ€‘κ΄„ν˜Έκ°€ 였면 리턴을 μ¨μ€˜μ•Ό λ°˜ν™˜λœλ‹€.
  • ν”„λ‘­μŠ€ μ‚¬μš©ν• λ•Œ 배열을 보낼건지 객체λ₯Ό 보낼껀지 κ΄„ν˜Έ ꡬ뢄 ν™•μ‹€ν•˜κ²Œ ν•΄μ„œ λ³΄λ‚΄μ€˜μ•Όν•œλ‹€.

  • μŠ€ν…Œμ΄νŠΈ 값을 객체 μ•ˆμ— λ„£μ„λ•Œ 객체 μ•ˆμ—μ„œ μ»¬μ‹œ λ¦¬ν„°λŸ΄ μ“°μ§€λ§ˆλΌ.


GOOD πŸ˜‰

νƒ€μž„μ–΄νƒμœΌλ‘œ λ¦¬μ•‘νŠΈ μŠ€ν”Œλ¦°νŠΈλ₯Ό μ™„λ£Œν–ˆλ‹€.
λ¦¬μ•‘νŠΈ μŠ€ν”Œλ¦°νŠΈλ₯Ό ν’€λ©° λ¦¬μ•‘νŠΈλž‘ 쑰금 더 μΉœν•΄μ‘Œλ‹€.
state와 props λ₯Ό μ‚¬μš©ν•΄ 값을 λ³€κ²½ν•˜κ³  μ €μž₯ν•˜λ©° ν•˜μœ„ μ»΄ν¬λ„ŒνŠΈλ‘œ λ³΄λ‚΄λŠ” 방법을 μ΅ν˜”λ‹€.

BAD πŸ˜₯

μ˜€λŠ˜λ„ λ„ˆλ¬΄ λ”μ›Œμ„œ μ˜€ν›„μ—” 집쀑을 λͺ»ν–ˆλ‹€.
내일 에어컨 생김

TO DO πŸ”₯

  • React
    • μŠ€ν”Œλ¦°νŠΈ μ–΄λ“œλ°΄μŠ€λ“œ, λ‚˜μ΄νŠΈλ©”μ–΄ 단계
    • λ…Έλ§ˆλ“œ 코더 λ¦¬μ•‘νŠΈ 클둠코딩
    • μ½”λ”©μ•™λ§ˆλ‹˜ 유튜브 보기

Retrospect 🧐

λ¦¬μ•‘νŠΈ μŠ€ν…Œμ΄νŠΈμ™€ ν”„λ‘­μŠ€ μœ„μ£Όλ‘œ ν•™μŠ΅ν•˜λŠ” λ‚  μ΄μ—ˆλ‹€.

μ•„ν›„ 미리 μ„ ν–‰ν•™μŠ΅μ„ ν•΄λ†”μ„œ 였늘 μ΅νžˆλŠ”λ° μ• λ‘œμ‚¬ν•­μ΄ μ—†μ—ˆμ§€, λ§Œμ•½ μ²˜μŒλΆ€ν„° 머리 λ°•μœΌλ©° λ°°μ› μœΌλ©΄ κ³Όλ‹€ 좜혈둜 리타이어 ν–ˆμ„μ§€λ„ λͺ¨λ₯΄κ² λ‹€.

μ΄λž˜μ„œ μ„ ν–‰ν•™μŠ΅μ΄ μ€‘μš”ν•œλ°, ν•˜λ£¨ 배운거 μ •λ¦¬ν•˜λ©΄ μ„ ν–‰ν•™μŠ΅ν•  μ‹œκ°„μ΄ μ—†μ–΄μ Έλ²„λ¦¬λ‹ˆ μ—μž‰ ~
κ·Έλž˜λ„ μš”μƒŒ μ΅νžˆλŠ” μ‹œκ°„μ΄ 주라 μ’€ μ—¬μœ λ‘­κ²Œ 곡뢀할 수 μžˆλŠ” 것 κ°™λ‹€.
λ‹ˆκ°€ μ§€κΈˆ μ—¬μœ λ‘œμš°λ©΄ μ•ˆλ ν…λ°

그리고 μ˜€λŠ˜λ„ 이 미친 κ³„μ ˆλ‹˜μ˜ 찬쑰둜 μ˜€ν›„λ₯Ό 거의 λ‚ λ¦¬λ‹€μ‹œν”Ό ν–ˆλ‹€.
κ·Έλž˜λ„ 내일이면 이 미친 κ³„μ ˆλ‹˜μ˜ μ†μ•„κ·€μ—μ„œ λ²—μ–΄λ‚  수 μžˆλŠ” λ¬Έλͺ…μ˜ 이기, μ—μ–΄μ»¨λ‹˜μ΄ μ˜€λ‹ˆ 닀행이닀.

여름은 지μ˜₯이닀.

Reference πŸ™‡

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

2개의 λŒ“κΈ€

comment-user-thumbnail
2021λ…„ 7μ›” 12일

πŸ‘λ‚΄μΌλ„ ν™”μ΄νŒ…ν•΄μš” πŸ‘

1개의 λ‹΅κΈ€