๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
TIL -์ผ๊ฐ„ํ•™์Šต๊ธฐ๋ก/React

API, UseEffect๋กœ ๊ด€๋ฆฌํ•˜๊ธฐ

by ___Jin 2022. 2. 17.

Use Effect๊ฐ€ ์•„์ง ์–ด๋–ค ๋…€์„์ธ์ง€ ์ž˜๋ชจ๋ฅด๊ฒ ๋‹ค.. 

๊ณต์‹๋ฌธ์„œ ํ™•์ธ ๊ณ ๊ณ 

UseEffect = ํ•จ์ˆ˜ ์ปดํฌ๋„ŒํŠธ ๋‚ด์—์„œ side Effect ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•œ๋‹ค.

*Side Effect๋ž€ ํ•จ์ˆ˜๊ฐ€ ์‹คํ–‰๋˜๋ฉด์„œ ํ•จ์ˆ˜์™ธ๋ถ€์— ์กด์žฌํ•˜๋Š” ๊ฐ’์ด๋‚˜ ์ƒํƒœ๋ฅผ ๋ณ€๊ฒฝ์‹œํ‚ค๋Š” ํ–‰์œ„์ด๋‹ค.

ex) ํ•จ์ˆ˜๋‚ด์—์„œ ์ „์—ญ๋ณ€์ˆ˜์˜ ๊ฐ’์„ ๋ณ€๊ฒฝ์‹œํ‚ค๊ฑฐ๋‚˜ ํ•จ์ˆ˜์™ธ๋ถ€ ๋ฒ„ํŠผ์˜ ํ…์ŠคํŠธ๋ฅผ ๋ณ€๊ฒฝํ•˜๊ณ ,

๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์†ก์‹ ํ•˜๋Š” ๊ฒƒ๋“ฑ์ด ์žˆ๋‹ค.

 

ํ•จ์ˆ˜๋Š” ์ „๋‹ฌ๋ฐ›์€ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ํ†ตํ•ด ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•ด์•ผํ•˜๋ฉฐ ๊ฒฐ๊ณผ๋Š” ํ•ญ์ƒ ์ผ๊ด€๋˜๊ณ  ์˜ˆ์ธก ํ• ์ˆ˜์žˆ์–ด์•ผํ•œ๋‹ค.

๊ทธ๋ž˜์•ผ ํ”„๋กœ๊ทธ๋žจ์ด ์‰ฝ๊ณ  ๋‹จ์ˆœํ•˜๋ฉฐ ์œ ์ง€๋ณด์ˆ˜ ํ•˜๊ธฐ๊ฐ€ ์‰ฌ์›Œ์ง€๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

 

๋ฆฌ์•กํŠธ์—๋Š” ์ ˆ์ฐจํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ํ”ํžˆ ์กด์žฌํ•˜๋Š” ์ž‘์—…์ธ Side Effect ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•ด Use Effect() ํ•จ์ˆ˜๊ฐ€ ์žˆ๋‹ค.

 

์˜ˆ์‹œ๋ฅผ ํ™œ์šฉํ•ด ์•Œ์•„๋ณด์ž๋ฉด (์ถœ์ฒ˜ : https://dmitripavlutin.com/react-useeffect-explanation/)

๊ถŒ์žฅํ•˜์ง€ ์•Š๋Š” ์ฝ”๋“œ ์ž‘์„ฑ์‚ฌ๋ก€

์œ„ ์˜ ๊ฒฝ์šฐ ํ•จ์ˆ˜์•ˆ์˜ name์œผ๋กœ ํ•จ์ˆ˜๋ฐ–์˜ document.title ์„ ๋ณ€๊ฒฝ์‹œํ‚ค๊ณ ์žˆ๋‹ค.

์ด๊ฒƒ์€ ํ•จ์ˆ˜์™ธ๋ถ€์™€ ์ƒํ˜ธ ์ž‘์šฉํ•˜๋Š” side effect ์ฝ”๋“œ์ด๋‹ค. 

๊ถŒ์žฅํ•˜๋Š” ์ž‘์„ฑ ์‚ฌ๋ก€

์ด๋Ÿฐ ๊ฒฝ์šฐ Use Effect()๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ name์˜ ๊ฐ’์ด ๋ณ€ํ• ๋•Œ์— document.title  ์„ ์ƒˆ๋กญ๊ฒŒ ๋ Œ๋”๋ง ํ•ด์ค€๋‹ค.

๋˜ํ•œ, ์ด๋ ‡๊ฒŒ ์‚ฌ์šฉํ•˜๋ฉด Use Effect()๊ฐ€ ์ ์ ˆํ• ๋•Œ์— ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ด์ฃผ๊ธฐ ๋•Œ๋ฌธ์— ํ•จ์ˆ˜ํ˜• ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋น ๋ฅด๊ฒŒ ๋ Œ๋”๋ง ๋ ์ˆ˜์žˆ๊ฒŒ 

๋„์™€์ฃผ๋ฉฐ, ๊ฐœ๋ฐœ์ž๋“ค์€ ๋ฆฌ์•กํŠธ์˜ ์ •ํ™•ํ•œ ๋ Œ๋”๋ง ์‹œ์ ์„ ์•Œ์ˆ˜์žˆ์–ด ํ†ต์ œํ•˜๊ธฐ๊ฐ€ ์ˆ˜์›”ํ•ด ์ง‘๋‹ˆ๋‹ค.

 

 useEffect (callback [, dependencies]);

to be continue....

 

 

๋Œ“๊ธ€