Daily/Today I Learned

22.06.14_TIL

ํ˜ธ๋ฐ€์ด 2022. 6. 14. 19:56

๐Ÿ“Œ useEffect๋ฅผ ์ €๋ฒˆ์ฃผ ํŽ˜์–ด๋ถ„์ด ์•Œ๋ ค์ฃผ์…จ๋Š”๋ฐ ์ด๊ฒƒ์„ ์‹ค์ œ๋กœ ํ™œ์šฉํ•ด๋ณด๋‹ˆ ์ƒ๋‹นํžˆ ํŽธํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด์„œ ์ข‹๋‹ค.

 

 

๐Ÿ“— ์˜ค๋Š˜ ํ•™์Šตํ•œ ๋‚ด์šฉ

React

  • Side Effect(๋ถ€์ˆ˜ ํšจ๊ณผ)
    • ํ•จ์ˆ˜ ๋‚ด์—์„œ ์–ด๋–ค ๊ตฌํ˜„์ด ํ•จ์ˆ˜ ์™ธ๋ถ€์— ์˜ํ–ฅ์„ ๋ผ์น˜๋Š” ๊ฒฝ์šฐ
      • fetch๋ฅผ ํ†ตํ•ด API๋ฅผ ๊ฐ€์ ธ์˜ฌ ๋•Œ
      • ์ด๋ฒคํŠธ๋ฅผ ํ™œ์šฉํ•ด DOM์„ ์ง์ ‘ ์กฐ์ž‘ํ•  ๋•Œ
  • Pure Function(์ˆœ์ˆ˜ ํ•จ์ˆ˜)
    • ์˜ค์ง ํ•จ์ˆ˜์˜ ์ž…๋ ฅ๋งŒ์ด ํ•จ์ˆ˜์˜ ๊ฒฐ๊ณผ์— ์˜ํ–ฅ์„ ์ฃผ๋Š” ํ•จ์ˆ˜
  • useEffect
    • side effect๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” HOOK
    • ๋ Œ๋”๋ง ์กฐ๊ฑด
      • ์ปดํฌ๋„ŒํŠธ ์ƒ์„ฑํ›„ ์ฒ˜์Œ ํ™”๋ฉด์— ๋ Œ๋”๋ง
      • ์ปดํฌ๋„ŒํŠธ์— ์ƒˆ๋กœ์šด props๊ฐ€ ์ „๋‹ฌ๋˜๋ฉฐ ๋ Œ๋”๋ง
      • ์ปดํฌ๋„ŒํŠธ์˜ state๊ฐ€ ๋ฐ”๋€Œ๋ฉฐ ๋ Œ๋”๋ง
    • ์‚ฌ์šฉ๋ฐฉ๋ฒ•
      • useEffect๋งŒ ์ž‘์„ฑํ•  ๊ฒฝ์šฐ: ๋ Œ๋”๋ง ๋งˆ๋‹ค ์‹คํ–‰
      • useEffect ๋’ค์— ๋นˆ ๋ฐฐ์—ด ์ž‘์„ฑํ•  ๊ฒฝ์šฐ: ์ตœ์ดˆ์˜ ํ•œ๋ฒˆ๋งŒ ์‹คํ–‰
      • useEffect ๋’ค์— ๋ฐฐ์—ด ์•ˆ์— state๋ฅผ ์ž‘์„ฑํ•  ๊ฒฝ์šฐ: state๊ฐ€ ๋ณ€ํ™”ํ•  ๋•Œ ๋งˆ๋‹ค ์‹คํ–‰
// ๋ Œ๋”๋ง ๋งˆ๋‹ค ์‹คํ–‰
useEffect(() => {
	
})

// ์ตœ์ดˆ์˜ ํ•œ๋ฒˆ๋งŒ ์‹คํ–‰
useEffect(() => {
	
}, [])

// state๊ฐ€ ๋ณ€ํ•  ๋•Œ ๋งˆ๋‹ค ์‹คํ–‰
useEffect(() => {
	
}, [state])

 

 

 

๐Ÿ“˜ ์ถ”๊ฐ€๋กœ ๊ณต๋ถ€ํ•  ๋‚ด์šฉ

VSCode

  • ES7+ React/Redux/React-Native snippets
    • ๋นˆ ํ™”๋ฉด์— ์ปดํฌ๋„ŒํŠธ์˜ ๊ธฐ๋ณธ ๋ผˆ๋Œ€๋ฅผ ๊ตฌ์„ฑํ•ด์ฃผ๋Š” ์ต์Šคํ…์…˜

 

 

๐Ÿ“ ์˜ค๋Š˜ ๋Š๋‚€ ์  & ๋งˆ์Œ ๊ฐ€์ง

  • ์ต์Šคํ…์…˜์—๋Š” ํŽธ๋ฆฌํ•œ ๊ฒƒ์ด ๋งŽ๋‹ค. ํ•˜์ง€๋งŒ ์ด๊ฒƒ์€ ์–‘๋‚ ์˜ ๊ฒ€์ด ๋  ์ˆ˜ ์žˆ๋‹ค. ์ต์Šคํ…์…˜์ด ์—†์„ ๊ฒฝ์šฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ธฐ๋ณธ๋ผˆ๋Œ€๋ฅผ ์ •ํ™•ํžˆ ์•Œ์•„๋ณด์ž!
  • ๋‹ค์–‘ํ•œ HOOK์— ๋Œ€ํ•ด์„œ ๊ณต๋ถ€ํ•ด๋ณด์ž! ๋„ˆ๋ฌด ํŽธ๋ฆฌํ•˜๋‹ค.

'Daily > Today I Learned' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

22.06.16_TIL  (0) 2022.06.16
22.06.15_TIL  (0) 2022.06.15
22.06.13_TIL  (0) 2022.06.13
22.06.11_TIL  (4) 2022.06.11
22.06.10_TIL  (0) 2022.06.10