[React 16] - Refactoring, Class-component, Component LifeCycle

yiwoojungยท2022๋…„ 7์›” 18์ผ
0

{C} Codecamp FE 06

๋ชฉ๋ก ๋ณด๊ธฐ
16/21

๐Ÿ ์˜ค๋Š˜์˜ ๋ชฉํ‘œ

  1. ์Šคํ”„๋ ˆ๋“œ ์—ฐ์‚ฐ์ž๋กœ ๋ฆฌํŒฉํ† ๋ง ํ•˜๊ธฐ
  2. Class Component
  3. ์ปดํฌ๋„ŒํŠธ ์ƒ๋ช…์ฃผ๊ธฐ Component Lifecycle

1. ์Šคํ”„๋ ˆ๋“œ ์—ฐ์‚ฐ์ž๋กœ ๋ฆฌํŒฉํ† ๋ง ํ•˜๊ธฐ


2. Class Component

Class

class๋ž€ ์„ค๋ช…์„œ๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

๋‹ค์Œ์€ Date๋ผ๋Š” ํด๋ž˜์Šค์ด๋‹ค. Date ์•ˆ์—๋Š” ๋ณ€์ˆ˜(์ฒด๋ ฅ, ๊ฒฝํ—˜์น˜ ๋“ฑ...)๋„ ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๊ณ  ํ•จ์ˆ˜(๋„๋ง๊ฐ€๊ธฐ, ๊ณต๊ฒฉํ•˜๊ธฐ ๋“ฑ ...)๋„ ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋‹ค. ์—ฌ๊ธฐ์„œ date๋ผ๋Š” ์•„์ด๋ฅผ ๊ฐ์ฒด ๋˜๋Š” ์ธ์Šคํ„ด์Šค ๋ผ๊ณ  ๋ถ€๋ฅด๊ณ  getFullYear()๋ผ๋Š” ํ•จ์ˆ˜๋“ค์€ ๋ฉ”์„œ๋“œ๋ผ๊ณ ๋„ ํ•œ๋‹ค. ์‚ฌ์‹ค ํ•จ์ˆ˜(๋ฉ”์„œ๋“œ)๋ฅผ ๋”ฐ๋กœ ๋”ฐ๋กœ 3๊ฐœ๋ฅผ ๋งŒ๋“ค์–ด๋„ ๋˜์ง€๋งŒ ํ•˜๋‚˜๋กœ ์ง‘์ค‘์‹œ์ผœ๋†“๊ธฐ ์œ„ํ•ด์„œ ๊ฐ์ฒด๋กœ ๋งŒ๋“  ๊ฒƒ์ด๋‹ค.

new Date()์ฒ˜๋Ÿผ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋‚ด์žฅ๋˜์–ด ์žˆ๋Š” ๊ฐ์ฒด์ธ Date๋ฅผ ๋‚ด์žฅ๊ฐ์ฒด๋ผ๊ณ  ํ•˜๊ณ  date๋ฅผ ๊ฐ์ฒด ํ˜น์€ ์ธ์Šคํ„ด์Šค๋ผ๊ณ  ํ•œ๋‹ค. ์ด๋Ÿฐ ๋ฐฉ์‹์œผ๋กœ ํ•˜๋Š” ๊ฐœ๋ฐœ์„ ๊ฐ์ฒด์ง€ํ–ฅํ”„๋กœ๊ทธ๋ž˜๋ฐ OOP(Object Oriented Programming) ์ด๋ผ๊ณ  ํ•œ๋‹ค.
(๋ฐฑ์—”๋“œ์—์„œ๋Š” ๊ฐœ๋ฐœ์‹œ๊ฐ„ ๋‹จ์ถ•๊ณผ ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์‰ฌ์šด์  ๋•Œ๋ฌธ์— ๊ฐ์ฒด์ง€ํ–ฅํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์ฃผ๋กœ ์‚ฌ์šฉํ•˜๊ณค ํ•œ๋‹ค.)


Class Component ์™€ Functional Component

Class Component ํด๋ž˜์Šคํ˜• ์ปดํฌ๋„ŒํŠธ

  • Hook ์—†์ด state,LifeCycle ๊ตฌํ˜„ ๊ฐ€๋Šฅ
  • function,let,const ๋ถ™์ด์ง€ ์•Š์Œ
  • ๋ช…์‹œ์ ์ธ ํ‘œํ˜„๋ฐฉ๋ฒ•
  • ๊ธฐ๋Šฅ์ด ์กฐ๊ธˆ ๋” ๋งŽ์Œ

Functional Component ํ•จ์ˆ˜ํ˜• ์ปดํฌ๋„ŒํŠธ

  • Hook์„ ์ด์šฉํ•œ state์™€ LifeCycle ๊ตฌํ˜„
  • ํด๋ž˜์Šคํ˜•์— ๋น„ํ•ด ๊ฐ„๊ฒฐํ•œ ํ‘œํ˜„


Class Component

์ด์ œ ์ด class๋ฅผ ์ด์šฉํ•ด์„œ counter ์ปดํฌ๋„ŒํŠธ๋ฅผ ํ•˜๋‚˜ ๋งŒ๋“ค์–ด๋ณด์ž.

class ์ปดํฌ๋„ŒํŠธ์—์„œ this๊ฐ€ class๋กœ ์ธ์‹ํ•˜๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด์„œ ํ™”์‚ดํ‘œ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ .bind()๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.



3. ์ปดํฌ๋„ŒํŠธ ์ƒ๋ช…์ฃผ๊ธฐ Component Lifecycle

Class Component

  1. render - ๊ทธ๋ฆฌ๊ธฐ
  2. componentDidMount - ๊ทธ๋ฆฌ๊ณ  ๋‚œ ๋’ค
  3. componentDidUpdate - ๊ทธ๋ฆฌ๊ณ  ๋‚œ ๋’ค ๋ณ€๊ฒฝ๋์„ ๋•Œ
  4. componentWillUnmount - ๊ทธ๋ฆฌ๊ณ  ๋‚œ ๋’ค ์‚ฌ๋ผ์งˆ ๋•Œ

์ด๊ฑธ ๋˜‘๊ฐ™์ด ํ•จ์ˆ˜ํ˜• ์ปดํฌ๋„ŒํŠธ๋กœ ๋งŒ๋“ค์–ด๋ณด์ž.

Functional Component

ํ•จ์ˆ˜ํ˜• ์ปดํฌ๋„ŒํŠธ์—์„œ๋Š” useEffect ํ•˜๋‚˜๋กœ ํ•จ์ˆ˜ํ˜• ์ปดํฌ๋„ŒํŠธ์˜ ์ƒ๋ช…์ฃผ๊ธฐ๋ฅผ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. useEffect์˜ ๋‘๋ฒˆ์งธ ์ธ์ž๋กœ ๋“ค์–ด๊ฐ€๋Š” ๋ฐฐ์—ด์ด ๋งค์šฐ ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•œ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ด๊ฒƒ์„ ์˜์กด์„ฑ ๋ฐฐ์—ด(dependency array)์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

๐Ÿ“Œ useEffect์˜ ์ž˜๋ชป๋œ ์‚ฌ์šฉ ์˜ˆ

๋‹ค์Œ์ฒ˜๋Ÿผ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ฒŒ ๋˜๋ฉด 1. ๋ถˆํ•„์š”ํ•œ ์ถ”๊ฐ€ ๋ Œ๋”๋ง๊ณผ 2.๋ฌดํ•œ๋ฃจํ”„ ๋ฅผ ์ผ์œผํ‚ฌ ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ž˜์„œ // ๊ฐ€๊ธ‰์ ์ด๋ฉด useEffect ์•ˆ์— setState ์‚ฌ์šฉ์„ ๊ถŒ์žฅํ•˜์ง€ ์•Š๋Š”๋‹ค.

useEffect(()=>{
   setCount(prev => prev + 1)
 },[count])
profile
ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž

0๊ฐœ์˜ ๋Œ“๊ธ€