λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
Studying Web Development/Front-end

[React] ν΄λž˜μŠ€ν˜• μ»΄ν¬λ„ŒνŠΈμ™€ ν•¨μˆ˜ν˜• μ»΄ν¬λ„ŒνŠΈμ˜ 차이점

by Esoolgnah 2022. 7. 21.
728x90

1. 선언방식

🏭 ν΄λž˜μŠ€ν˜• μ»΄ν¬λ„ŒνŠΈ

  • class ν‚€μ›Œλ“œλ‘œ μ‹œμž‘ν•©λ‹ˆλ‹€.
  • Component둜 상속을 λ°›μ•„μ•Όν•©λ‹ˆλ‹€.
  • reunder() λ©”μ†Œλ“œκ°€ λ°˜λ“œμ‹œ ν•„μš”ν•©λ‹ˆλ‹€.
  • state, lifeCycle κ΄€λ ¨ κΈ°λŠ₯μ‚¬μš©μ΄ κ°€λŠ₯ν•©λ‹ˆλ‹€.
  • ν•¨μˆ˜ν˜•λ³΄λ‹€ λ©”λͺ¨λ¦¬ μžμ›μ„ 더 μ‚¬μš©ν•©λ‹ˆλ‹€.
  • μž„μ˜ λ©”μ†Œλ“œλ₯Ό μ •μ˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

πŸ“¦ ν•¨μˆ˜ν˜• μ»΄ν¬λ„ŒνŠΈ

  • state, lifeCycle κ΄€λ ¨ κΈ°λŠ₯을 μ‚¬μš©ν•  수 μ—†μŠ΅λ‹ˆλ‹€. (Hook을 톡해 ν•΄κ²°)
  • ν΄λž˜μŠ€ν˜•λ³΄λ‹€ λ©”λͺ¨λ¦¬ μžμ›μ„ 덜 μ‚¬μš©ν•©λ‹ˆλ‹€.
  • μ»΄ν¬λ„ŒνŠΈ 선언이 νŽΈν•©λ‹ˆλ‹€.

2. state

🏭 ν΄λž˜μŠ€ν˜• μ»΄ν¬λ„ŒνŠΈ

  • constructor μ•ˆμ—μ„œ this.state 초기 κ°’ μ„€μ • κ°€λŠ₯ν•©λ‹ˆλ‹€.
  • counstructor 없이도 λ°”λ‘œ state μ΄ˆκΈ°κ°’μ„ μ„€μ • κ°€λŠ₯ν•©λ‹ˆλ‹€.
  • this.setState() λ₯Ό 톡해 state값을 λ³€κ²½ν•©λ‹ˆλ‹€.
  • ν΄λž˜μŠ€ν˜•μ˜ stateλŠ” κ°μ²΄ν˜•μ‹μž…λ‹ˆλ‹€.

πŸ“¦ ν•¨μˆ˜ν˜• μ»΄ν¬λ„ŒνŠΈ

  • useState ν•¨μˆ˜λ‘œ stateλ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€.
  • useState ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•˜λ©΄ 배열이 λ°˜ν™˜λ˜λŠ”λ° 첫 번째 μ›μ†ŒλŠ” ν˜„μž¬ μƒνƒœ, λ‘λ²ˆμ§Έ μ›μ†ŒλŠ” μƒνƒœλ₯Ό λ°”κΏ”μ£ΌλŠ” ν•¨μˆ˜μž…λ‹ˆλ‹€.

3. props

🏭 ν΄λž˜μŠ€ν˜• μ»΄ν¬λ„ŒνŠΈ

  • this.props둜 톡해 값을 뢈러올 수 μžˆμŠ΅λ‹ˆλ‹€.

πŸ“¦ ν•¨μˆ˜ν˜• μ»΄ν¬λ„ŒνŠΈ

  • propsλ₯Ό 뢈러올 ν•„μš” 없이 λ°”λ‘œ 호좜 ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

4. 이벀트 핸듀링

🏭 ν΄λž˜μŠ€ν˜• μ»΄ν¬λ„ŒνŠΈ

  • ν•¨μˆ˜ μ„ μ–Έμ‹œ ν™”μ‚΄ν‘œ ν•¨μˆ˜λ‘œ λ°”λ‘œ μ„ μ–Έ κ°€λŠ₯ν•©λ‹ˆλ‹€.
  • μš”μ†Œμ— μ μš©ν• λ•Œ this.λ₯Ό λΆ™μ—¬μ€˜μ•Ό ν•©λ‹ˆλ‹€.

πŸ“¦ ν•¨μˆ˜ν˜• μ»΄ν¬λ„ŒνŠΈ

  • const + ν•¨μˆ˜ ν˜•νƒœλ‘œ μ„ μ–Έν•΄μ•Ό ν•©λ‹ˆλ‹€.
  • μš”μ†Œμ— μ μš©ν• λ•Œ thisκ°€ ν•„μš”μ—†μŠ΅λ‹ˆλ‹€.

5. Life Cycle

🏭 ν΄λž˜μŠ€ν˜• μ»΄ν¬λ„ŒνŠΈ

Mounting(생성 될 λ•Œ): μ»΄ν¬λ„ŒνŠΈκ°€ μΈμŠ€ν„΄μŠ€λ‘œ μƒμ„±λ˜κ³  DOM νŠΈλ¦¬μ— μ‚½μž…λ˜μ–΄ λΈŒλΌμš°μ €μƒμ— λ‚˜νƒ€λ‚˜λŠ” κ³Όμ •

  • constructor, static getDerivedStateFromProps, render, componentDidMount

Updating (μ—…λ°μ΄νŠΈ ν•  λ•Œ): μ»΄ν¬λ„ŒνŠΈ props λ˜λŠ” stateκ°€ λ°”λ€Œμ—ˆμ„ λ•Œ

  • static getDerivedStateFromProps, shouldComponentUpdate, render, getSnapShotBeforeUpdate

Unmounting (μ œκ±°ν•  λ•Œ): μ»΄ν¬λ„ŒνŠΈκ°€ λΈŒλΌμš°μ €μƒμ—μ„œ μ‚¬λΌμ§ˆλ•Œ

  • componentWillUnmount

- μ»΄ν¬λ„ŒνŠΈ μ—λŸ¬κ°€ λ°œμƒν–ˆμ„ λ•Œ -

  • componentDidCatch

πŸ“¦ ν•¨μˆ˜ν˜• μ»΄ν¬λ„ŒνŠΈ

  • Hooks
    • useState
    • useEffect
    • useContext
    • useReducer
    • useMemo
    • useCallback
    • useRef


μ°Έκ³ 


μžμ„Έν•œ λ‚΄μš©κ³Ό μ˜ˆμ‹œλ“€μ„ 보고 μ‹Άλ‹€λ©΄ μ•„λž˜μ˜ λ§ν¬λ“€λ‘œ μ΄λ™ν•΄μ„œ μ½μ–΄μ£Όμ„Έμš”. μ•„λž˜μ˜ 글듀을 μ°Έκ³ ν•˜μ—¬ μž‘μ„±ν–ˆμŠ΅λ‹ˆλ‹€.

ν•¨μˆ˜ν˜• μ»΄ν¬λ„ŒνŠΈμ™€ ν΄λž˜μŠ€ν˜• μ»΄ν¬λ„ŒνŠΈμ˜ 차이

React μ»΄ν¬λ„ŒνŠΈλ₯Ό λ§Œλ“€λ•Œ ν΄λž˜μŠ€ν˜• μ»΄ν¬λ„ŒνŠΈ, ν•¨μˆ˜ν˜• μ»΄ν¬λ„ŒνŠΈ 2가지 방식이 μžˆλ‹€ κ³Όκ±°μ—λŠ” ν΄λž˜μŠ€ν˜• μ»΄ν¬λ„ŒνŠΈλ₯Ό 많이 μ‚¬μš©ν–ˆμ§€λ§Œ 2019λ…„ v16.8 λΆ€ν„° ν•¨μˆ˜ν˜• μ»΄ν¬λ„ŒνŠΈμ— λ¦¬μ•‘νŠΈ ν›…(hook)을 지원해 μ£Ό

born-dev.tistory.com

React 곡식 λ¬Έμ„œ Hook (2) : Hook κ°œμš”

[useState] μƒνƒœ μœ μ§€ κ°’κ³Ό κ·Έ 값을 κ°±μ‹ ν•˜λŠ” ν•¨μˆ˜λ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€. - 졜초둜 λ Œλ”λ§μ„ ν•˜λŠ” λ™μ•ˆ, λ°˜ν™˜λœ state(state)λŠ” 첫 번째 μ „λ‹¬λœ 인자(initialState)의 κ°’κ³Ό κ°™μŠ΅λ‹ˆλ‹€. - setState ν•¨μˆ˜λŠ” stateλ₯Ό κ°±μ‹ ν• .

born-dev.tistory.com


λ°˜μ‘ν˜•

λŒ“κΈ€