[React] useEffect์˜ Dependency

๋ฐ•์ง€์œคยท2024๋…„ 4์›” 23์ผ
post-thumbnail

๐Ÿ” ์žฌ๋žœ๋”๋ง ๋ ๋•Œ๋งˆ๋‹ค useEffect ์‹คํ–‰

useEffect(() => {
	setTimeout(() => console.log('Initial timeout!'), 1000);
}); 

๐Ÿ” ์ฒ˜์Œ ๋žœ๋”๋ง์‹œ & defecdency array ๋‚ด์— ์žˆ๋Š” value๊ฐ’์ด ๋ณ€๊ฒฝ๋ ๋•Œ useEffect ์‹คํ–‰

useEffect(() => {
	setTimeout(() => console.log('Initial timeout!'), 1000);
}, [count]);

๐Ÿ” useEffect ์‹คํ–‰ ์ „์— ์‹คํ–‰๋˜๋Š” return ์ฝ”๋“œ๊ฐ’.

useEffect(() => {
	๊ทธ ๋‹ค์Œ ์‹คํ–‰๋จ 
	return ()=>{
    	์—ฌ๊ธฐ์žˆ๋Š”๊ฒŒ ๋จผ์ €์‹คํ–‰๋จ
    }
});
๋ฆฌ์•กํŠธ ํŠน์„ฑ์ƒ ์žฌ๋žœ๋”๋ง์ด ์žฆ๋‹ค.
๊ทธ๋ ‡๊ธฐ์— ์˜ˆ์ƒ์น˜์•Š๊ฒŒ ํƒ€์ด๋จธ๊ฐ€ ์ˆ˜์‹ญ,์ˆ˜๋ฐฑ๊ฐœ๊ฐ€ ์‹คํ–‰๋ ์ˆ˜๋„ ์žˆ๊ธฐ์— ๋ณดํ†ต ํƒ€์ด๋จธ 
์ž‘์„ฑ์‹œ return๋ฌธ ๋‚ด์—์„œ ๊ธฐ์กด ํƒ€์ด๋จธ๋ฅผ ์‚ญ์ œํ•˜๊ณ  ํ•„์š”ํ•œ ํƒ€์ด๋จธ๋งŒ ์‹คํ–‰๋˜๋„๋กํ•˜์—ฌ 
๋น„ํšจ์œจ์„ ๋ฐฉ์ง€ํ•œ๋‹ค.
useEffect(() => {

	let a = setTimeout(() => console.log('Initial timeout!'), 1000);
    console.log(2)
    
	return ()=>{
    	console.log(1)
    	clearTimeout(a);
    }
});

์‹ค์ œ๋กœ  return๋ฌธ ๋‚ด์˜ ์ฝ”๋“œ๊ฐ€ ๋จผ์ € ๋ฐœ์ƒ๋˜๋Š”๊ฒƒ์„ ๋ณผ์ˆ˜์žˆ๋‹ค.

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