Skip to content

Latest commit

Β 

History

History
47 lines (29 loc) Β· 2.58 KB

State.md

File metadata and controls

47 lines (29 loc) Β· 2.58 KB

πŸ“ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ—μ„œ μƒνƒœκ°€ κ°€μ§€λŠ” 의미

  • μƒνƒœκ΄€λ¦¬λ₯Ό ν†΅ν•΄μ„œ μœ μ €μ—κ²Œ μ˜¬λ°”λ₯Έ 데이터λ₯Ό 보여쀄 수 μžˆμŠ΅λ‹ˆλ‹€.
  • μœ μ €κ°€ μž…λ ₯ν•œ κ°’μ΄λ‚˜, μ„œλ²„λ‘œλΆ€ν„° λ°›μ•„μ˜€λŠ” 데이터듀을 μƒνƒœλ‘œμ¨ κ΄€λ¦¬ν•˜μ—¬ μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ μ •μƒλ™μž‘ν•˜κ²Œ λ§Œλ“€ 수 μžˆμŠ΅λ‹ˆλ‹€.

πŸ“ 바닐라 μžλ°”μŠ€ν¬λ¦½νŠΈμ™€ λ¦¬μ•‘νŠΈμ—μ„œ μƒνƒœ 차이

  • 바닐라 μžλ°”μŠ€ν¬λ¦½νŠΈμ—μ„œλŠ” μƒνƒœκ°€ λ³€ν•˜λ©΄, λͺ…μ‹œμ μœΌλ‘œ innerHTML, μ΄λ‚˜ createElement λ©”μ„œλ“œλ₯Ό μ‹€ν–‰ν•˜μ—¬ λ³€ν™”λœ μƒνƒœλ₯Ό 직접 DOM에 λ°˜μ˜ν•΄μ£Όμ–΄μ•Ό ν–ˆμŠ΅λ‹ˆλ‹€.
  • λ¦¬μ•‘νŠΈμ—μ„œλŠ” state κ°€ λ³€ν™”λ˜λ©΄, 즉 setState ν•¨μˆ˜κ°€ μ‹€ν–‰λ˜λ©΄ μ»΄ν¬λ„ŒνŠΈμ˜ λ¦¬λ Œλ”λ§μ΄ μΌμ–΄λ‚˜μ„œ, λ³€κ²½λœ μƒνƒœκ°€ DOM 에 λ°˜μ˜λœλ‹€. 즉 μ„ μ–Έμ μœΌλ‘œ state 변경이 view 에 반영 λ©λ‹ˆλ‹€.

πŸ“ setState κ°€ ν•΄μ£ΌλŠ” 일

  • μ»΄ν¬λ„ŒνŠΈμ˜ state 객체에 λŒ€ν•œ μ—…λ°μ΄νŠΈλ₯Ό μ‹€ν–‰ν•©λ‹ˆλ‹€.
  • state κ°€ μ—…λ°μ΄νŠΈλ˜λ©΄ μ»΄ν¬λ„ŒνŠΈκ°€ λ¦¬λ Œλ”λ§ λ˜μ–΄ λ³€κ²½λœ μƒνƒœκ°€ view 에 반영 λ©λ‹ˆλ‹€.

πŸ“ state 와 props 의 곡톡점

  • props 와 state λͺ¨λ‘ μžλ°”μŠ€ν¬λ¦½νŠΈ 일반 κ°μ²΄μž…λ‹ˆλ‹€.
  • 두 객체 λͺ¨λ‘ λ Œλ”λ§ 결과물에 영ν–₯을 μ£ΌλŠ” 정보λ₯Ό κ°€μ§€κ³  μžˆμŠ΅λ‹ˆλ‹€.

πŸ“ state 와 props 의 차이점

props

  • props λŠ” 마치 ν•¨μˆ˜μ˜ λ§€κ°œλ³€μˆ˜ 처럼 μ»΄ν¬λ„ŒνŠΈμ— 전달 λ©λ‹ˆλ‹€.
  • props λŠ” λΆˆλ³€ν•˜κΈ° λ•Œλ¬Έμ—, μ‚¬μš©ν•˜λŠ” μ»΄ν¬λ„ŒνŠΈμ—μ„œ μˆ˜μ • ν•  수 μ—†μŠ΅λ‹ˆλ‹€.
  • Props λŠ” (ν•¨μˆ˜μ˜ λ§€κ°œλ³€μˆ˜ 처럼) μ»΄ν¬λ„ŒνŠΈμ— μ „λ‹¬λ©λ‹ˆλ‹€.

state

  • State λŠ” (ν•¨μˆ˜ 내에 μ„ μ–Έλœ λ³€μˆ˜ 처럼) μ»΄ν¬λ„ŒνŠΈ μ•ˆμ—μ„œ κ΄€λ¦¬λ©λ‹ˆλ‹€.
  • λΆ€λͺ¨ μ»΄ν¬λ„ŒνŠΈλ‚˜ μžμ‹ μ»΄ν¬λ„ŒνŠΈμ—μ„œ State 에 μ§μ ‘μ μœΌλ‘œ μ ‘κ·Ό/변경이 λΆˆκ°€λŠ₯ν•˜λ―€λ‘œ private ν•©λ‹ˆλ‹€.

πŸ“ setState 에 객체λ₯Ό μ „λ‹¬ν•˜λŠ” 것과 ν•¨μˆ˜λ₯Ό μ „λ‹¬ν•˜λŠ” κ²ƒμ˜ 차이점

  • updater ν•¨μˆ˜λ₯Ό μ „λ‹¬ν•˜λ©΄ ν•¨μˆ˜ μ•ˆμ—μ„œ 이전 state 값에 μ ‘κ·Ό ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • setState ν˜ΈμΆœμ€ 비동기 + 배치 처리 되기 λ•Œλ¬Έμ— ν˜„μž¬μ˜ this.state 둜 μ ‘κ·Όν•  경우 변경이 λ°˜μ˜λ˜μ§€ μ•Šμ„ 수 μžˆμŠ΅λ‹ˆλ‹€.

πŸ“ State λŠ” μ•„λž˜λ‘œ 흐λ₯Έλ‹€.

  • μ»΄ν¬λ„ŒνŠΈλŠ” μžμ‹ μ˜ state λ₯Ό μžμ‹ μ»΄ν¬λ„ŒνŠΈμ— props 둜 전달 ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • λΆ€λͺ¨ μ»΄ν¬λ„ŒνŠΈλ‘œλΆ€ν„° props λ₯Ό λ‚΄λ €λ°›λŠ” μžμ‹μ»΄ν¬λ„ŒνŠΈλŠ” ν•΄λ‹Ή props κ°€ λΆ€λͺ¨μ»΄ν¬λ„ŒνŠΈμ˜ state 인지, props 인지, μˆ˜λ™μœΌλ‘œ μž…λ ₯된 값인지 μ•Œ 수 μ—†μŠ΅λ‹ˆλ‹€.
  • 즉 β€œλ‹¨λ°©ν–₯식” ν˜Ήμ€ β€œνƒ‘λ‹€μš΄β€ 데이터 흐름을 μœ μ§€ν•©λ‹ˆλ‹€.

참고자료

https://ko.reactjs.org/docs/react-component.html#setstate