Frontend/React

React | ๋ Œ๋”๋ง ์ฃผ๊ธฐ

์ด์ œํฌ 2023. 11. 29. 12:30


React์—์„œ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋ Œ๋”๋ง ๋˜๋Š” ์ผ€์ด์Šค๋Š” ๋‹ค์–‘ํ•˜๋‹ค.

  • ์ดˆ๊ธฐ ๋ Œ๋”๋ง : ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์ดˆ๊ธฐ ์ƒ์„ฑ๋˜๊ณ  DOM์— ๋งˆ์šดํŠธ ๋  ๋•Œ
  • props๊ฐ€ ๋ณ€๊ฒฝ๋  ๋•Œ
  • state๊ฐ€ ๋ณ€๊ฒฝ๋  ๋•Œ
  • ๋ถ€๋ชจ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋ Œ๋”๋ง ๋  ๋•Œ
  • ์ปดํฌ๋„ŒํŠธ update ๊ด€๋ จ ์ƒ๋ช…์ฃผ๊ธฐ ๋ฉ”์„œ๋“œ๊ฐ€ ์‹คํ–‰๋˜์—ˆ์„ ๋•Œ : shouldComponentUpdate, componentDidUpdate ๋“ฑ๋“ฑ..

React ๋ Œ๋”๋ง ์ฃผ๊ธฐ๋Š” ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์–ธ์ œ ๋ Œ๋”๋ง ๋˜๊ณ , ์—…๋ฐ์ดํŠธ ๋˜๋Š”์ง€์— ๋Œ€ํ•ด ์„ค๋ช…ํ•œ๋‹ค.

(์ƒ๋ช…์ฃผ๊ธฐ ๋ฉ”์„œ๋“œ๋Š” ์ปดํฌ๋„ŒํŠธ์˜ ์ƒ์„ฑ, ์—…๋ฐ์ดํŠธ, ์†Œ๋ฉธ์— ๊ด€ํ•œ ๋ฉ”์„œ๋“œ์— ๋Œ€ํ•œ ๋‚ด์šฉ์ด๋ฏ€๋กœ ๊ฐœ๋…์ด ๋‹ค๋ฆ„!)


1. ์ƒ์„ฑ ๋‹จ๊ณ„ (Mounting) 

  • counstructor()
  • state getDerivedStateFromProps()
  • render()
  • componentDidMount()
 

React | ๋ Œ๋”๋ง ์ฃผ๊ธฐ - ์ƒ์„ฑ ๋‹จ๊ณ„ (Mounting)

counstructor() ์ปดํฌ๋„ŒํŠธ ์ƒ์„ฑ ์‹œ ๊ฐ€์žฅ ๋จผ์ € ํ˜ธ์ถœ๋˜๋Š” ์ฒซ๋ฒˆ์งธ ๋ฉ”์„œ๋“œ ์ดˆ๊ธฐ ์ƒํƒœ ์„ค์ • ๋ฐ ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. state getDerivedStateFromProps() props๋กœ๋ถ€ํ„ฐ ์ƒํƒœ๋ฅผ ๋™๊ธฐํ™” ํ•˜๊ณ ์ž ํ•  ๋•Œ ํ˜ธ์ถœํ•˜๋Š” ๋ฉ”์„œ๋“œ

ijaysong-blog.tistory.com


2. ์—…๋ฐ์ดํŠธ ๋‹จ๊ณ„ (Updating)

  • static getDerivedStateFromProps()
  • shouldComponentUpdate()
  • render()
  • getSnapshotBeforeUpdate()
  • componentDidUpdate()
 

React | ๋ Œ๋”๋ง ์ฃผ๊ธฐ - ์—…๋ฐ์ดํŠธ ๋‹จ๊ณ„ (Updating)

static getDerivedStateFromProps() props๋กœ๋ถ€ํ„ฐ ์ƒํƒœ๋ฅผ ๋™๊ธฐํ™” ํ•˜๊ณ ์ž ํ•  ๋•Œ ํ˜ธ์ถœํ•˜๋Š” ๋ฉ”์„œ๋“œ ๋งˆ์šดํŠธ ์ดํ›„์—๋„ props๋กœ๋ถ€ํ„ฐ ์ƒํƒœ๋ฅผ ์—…๋ฐ์ดํŠธ ํ•  ํ•„์š”๊ฐ€ ์žˆ์„ ๋•Œ ํ˜ธ์ถœํ•œ๋‹ค. shouldComponentUpdate() ์ƒ๋ช…์ฃผ๊ธฐ ๋ฉ”์„œ๋“œ

ijaysong-blog.tistory.com


3. ์ œ๊ฑฐ ๋‹จ๊ณ„ (Unmounting)

  • componentWillUnmount()
 

React | ๋ Œ๋”๋ง ์ฃผ๊ธฐ - ์ œ๊ฑฐ ๋‹จ๊ณ„ (Unmounting)

componentWillUnmount() ์ƒ๋ช…์ฃผ๊ธฐ ๋ฉ”์„œ๋“œ ์ค‘ ํ•˜๋‚˜ ์ปดํฌ๋„ŒํŠธ๊ฐ€ DOM์—์„œ ์–ธ๋งˆ์šดํŠธ(์ œ๊ฑฐ) ๋˜๊ธฐ ์ „์— ํ˜ธ์ถœ๋œ๋‹ค. ๋ฆฌ์†Œ์Šค ํ•ด์ œ, ํƒ€์ด๋จธ ์ œ๊ฑฐ, ์ด๋ฒคํŠธ ๋ฆฌ์Šค๋„ˆ ํ•ด์ œ ๋“ฑ ์ปดํฌ๋„ŒํŠธ ์ •๋ฆฌ ์ž‘์—…์„ ์ˆ˜ํ–‰ ํ•  ์ˆ˜ ์žˆ๋‹ค. impo

ijaysong-blog.tistory.com


4. ์—๋Ÿฌ ์ฒ˜๋ฆฌ ๋‹จ๊ณ„ (Error Handling)

  • static getDerivedStateFromError()
  • componentDidCatch()
 

React | ๋ Œ๋”๋ง ์ฃผ๊ธฐ - ์—๋Ÿฌ ์ฒ˜๋ฆฌ ๋‹จ๊ณ„ (Error Handling)

์—๋Ÿฌ ๊ฒฝ๊ณ„ (Error Boundary) React ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์ปดํฌ๋„ŒํŠธ ํŠธ๋ฆฌ ํ•˜์œ„์—์„œ ๋ฐœ์ƒํ•œ ์—๋Ÿฌ๋ฅผ ์ฒ˜๋ฆฌ ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ์ด๋‹ค. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ํŠน์ • ๋ถ€๋ถ„์—์„œ ๋ฐœ์ƒํ•œ ์—๋Ÿฌ๋ฅผ ๋ถ€๋ชจ ์ปดํฌ๋„ŒํŠธ์—์„œ ์ฒ˜

ijaysong-blog.tistory.com

 

๋ฐ˜์‘ํ˜•