Event listener ํ•ด์ œ

junghoon_youยท2022๋…„ 7์›” 24์ผ
0

React๊ณผ์ œ

๋ชฉ๋ก ๋ณด๊ธฐ
8/10

๐Ÿ”event listener๋Š” ๋“ฑ๋ก๋˜๋ฉด ๋ฐ˜๋“œ์‹œ ํ•ด์ œ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
ํด๋ž˜์Šคํ˜• ์ปดํฌ๋„ŒํŠธ์—์„œ๋Š” ์ปดํฌ๋„ŒํŠธ๊ฐ€ ํ™”๋ฉด์—์„œ ์‚ฌ๋ผ์งˆ ๋•Œ(unmount ๋  ๋•Œ) event listener๋ฅผ ํ•ด์ œํ•ฉ๋‹ˆ๋‹ค. (componentWillUnmount์—์„œ์š”!)
๊ทธ๋Ÿผ ๋ผ์ดํ”„์‚ฌ์ดํด ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” ํ•จ์ˆ˜ํ˜• ์ปดํฌ๋„ŒํŠธ์—์„œ๋Š” event listener๋ฅผ ํ•ด์ œํ•  ๋•Œ ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ• ๊นŒ์š”?

  • ํด๋ž˜์Šคํ˜• ์ปดํฌ๋„ŒํŠธ์—์„œ componentDidMount() ์—ญํ•  โ†’ ํ•จ์ˆ˜ํ˜• ์ปดํฌ๋„ŒํŠธ์—์„œ useEffect()ํ›…
    useEffect์˜ return๊ตฌ๋ฌธ์—์„œ clean upํ•จ์ˆ˜ ์ ์šฉ (useEffect()์—์„œ parameter๋กœ ๋„ฃ์€ ํ•จ์ˆ˜์˜ return ํ•จ์ˆ˜) component์˜ unmount์ด์ „ / update์ง์ „์— ์–ด๋–ค ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด clean-upํ•จ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•ด ์ฃผ์–ด์•ผํ•œ๋‹ค.
    unmount ๋  ๋•ŒuseEffect(func, [])
    ํŠน์ •๊ฐ’ update ์ง์ „useEffect(func, [ํŠน์ •๊ฐ’])
    clean-upํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ๋˜๋ฉด, ์ž‘๋™ ์ˆœ์„œ

re-render -> ์ด์ „ effect clean-up -> effect

์ด๋ฒคํŠธ ๋ฆฌ์Šค๋„ˆ๋ž€?

์‚ฌ์šฉ์ž๊ฐ€ ์–ด๋–ค ํ–‰๋™(=์ด๋ฒคํŠธ)์„ ํ•˜๋Š” ์ง€ ์•„๋‹Œ ์ง€ ์ง€์ผœ๋ณด๋‹ค๊ฐ€ ์•Œ๋ ค์ฃผ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค

Ex) ๋งˆ์šฐ์Šค ํด๋ฆญ, ๋งˆ์šฐ์Šค ๊ฐ–๋‹ค๋Œ€๊ธฐ, ํ‚ค๋ณด๋“œ ๋ˆ„๋ฆ„ ๋“ฑ๋“ฑ

์™œ ์ด๋ฒคํŠธ ๋ฆฌ์Šค๋„ˆ๋ฅผ ํ•ด์ œํ•ด์•ผ๋˜๋‚˜์š”?

์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜์˜ ์›์ธ์ด ๋  ์ˆ˜๋„์žˆ๊ธฐ๋•Œ๋ฌธ์— ํ•ด๋‹น ์ด๋ฒคํŠธ ๋ฆฌ์Šค๋„ˆ๊ฐ€ ํ•„์š”์—†์–ด์ง€๋ฉด ๋ฐ˜๋“œ์‹œ ์‚ญ์ œํ•ด์•ผ๋ฉ๋‹ˆ๋‹ค.

ํด๋ž˜์Šคํ˜• ์ปดํฌ๋„ŒํŠธ์˜ ์ƒ์„ฑ, ์ œ๊ฑฐ(clean up)

profile
์•ˆ๋…•ํ•˜์„ธ์š” ์ฝ”๋ฆฐ์ด ์ž…๋‹ˆ๋‹ค.

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

๊ด€๋ จ ์ฑ„์šฉ ์ •๋ณด