useRef & Custom Hook

useRef

Reference(์ฐธ์กฐ) ๋ง๊ทธ๋Œ€๋กœ ํ• ๋‹นํ•œ ๊ฐ’์„ ์ฐธ์กฐํ•˜๋Š” ๊ฐ์ฒด๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

useRef ํŠน์ง•

  • ์ปดํฌ๋„ŒํŠธ ์ƒ์• ์ฃผ๊ธฐ ์ „์ฒด์— ๊ฑธ์ณ์„œ ์œ ์ง€๋˜๋Š” ๊ฐ์ฒด, ์ฆ‰, ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์–ธ๋งˆ์šดํŠธ๋  ๋•Œ ๊นŒ์ง€ ์œ ์ง€๋œ๋‹ค.

  • ๊ฐ’์ด ๋ณ€๊ฒฝ ๋˜์–ด๋„ ๋ฆฌ๋ Œ๋”๋ง์„ ์œ ๋ฐœํ•˜์ง€ ์•Š๋Š”๋‹ค.

useRef๋ฅผ ์–ธ์ œ ์“ฐ๋‚˜

  • ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์–ธ๋งˆ์šดํŠธ๋  ๋•Œ ๊นŒ์ง€ ๋™์ผํ•œ ๊ฐ’์„ ์จ์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ โ†’ input์˜ ID๋ฅผ ๊ด€๋ฆฌํ•  ๋•Œ

  • DOM ์š”์†Œ์— ์ง์ ‘ ์ ‘๊ทผํ•ด์„œ ์ œ์–ดํ•  ๋•Œ ์ž์ฃผ ์‚ฌ์šฉ๋œ๋‹ค โ†’ ํ• ๋‹นํ•œ DOM ์š”์†Œ์— ํฌ์ปค์‹ฑ

  • ์ƒํƒœ์˜ ์ด์ „ ๊ฐ’๊ณผ ๋น„๊ตํ•ด์„œ ํŠน์ •ํ•œ ์ž‘์—…์„ ์ฒ˜๋ฆฌ ํ•  ๋•Œ

  • setTimeout, setInterval ๋“ฑ ํƒ€์ด๋จธ ID๋ฅผ ์ €์žฅํ•  ๋•Œ

Custom Hook

React์˜ Hook์„ ์กฐํ•ฉํ•˜์—ฌ ํŠน์ •ํ•œ ๊ธฐ๋Šฅ์„ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ฝ”๋“œ๋กœ ๋งŒ๋“œ๋Š” ๊ฒƒ

์ปค์Šคํ…€ ํ›… ๊ทœ์น™

  • React์—์„œ ์ œ๊ณตํ•ด์ฃผ๋Š” ํ›…๋“ค์˜ ๋„ค์ด๋ฐ ์ฒ˜๋Ÿผ ์•ž์— use ๋ฅผ ๋ถ™์—ฌ ์นด๋ฉœ์ผ€์ด์Šค๋กœ ์‚ฌ์šฉ

  • ๊ธฐ๋ณธ์ ์ธ Hook์˜ ๊ทœ์น™๋“ค๊ณผ ๋™์ผ

์ปค์Šคํ…€ ํ›… ์žฅ์ 

  • ์ปดํฌ๋„ŒํŠธ์—์„œ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง๊ณผ UI๋ฅผ ๋ถ„๋ฆฌํ•˜์—ฌ ๊ฐ€๋…์„ฑ๊ณผ ์œ ์ง€๋ณด์ˆ˜์„ฑ์„ ๋†’ํž ์ˆ˜ ์žˆ๋‹ค.

  • ๋กœ์ง์„ ๋ถ„๋ฆฌํ•˜๊ณ  ์˜๋ฏธ์žˆ๋Š” ์ด๋ฆ„์„ ๋ถ€์—ฌํ•จ์œผ๋กœ์จ, ์ฝ”๋“œ์˜ ์ถ”์ƒํ™” ์ˆ˜์ค€์„ ๋†’ํž ์ˆ˜ ์žˆ๋‹ค.

  • ์žฌ์‚ฌ์šฉ์„ฑ์„ ๋†’์ด๊ณ  ์ค‘๋ณต๋˜๋Š” ์ฝ”๋“œ๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค.

  • ํ•˜๋‚˜์˜ ๋ชฉ์ ์„ ๊ฐ€์ง€๋Š” ์ฝ”๋“œ๋ฅผ ์ปค์Šคํ…€ ํ›…์œผ๋กœ ์ถ”์ถœํ•˜์—ฌ ์‘์ง‘๋„๋ฅผ ๋†’ํž ์ˆ˜ ์žˆ๋‹ค.

์ปค์Šคํ…€ ํ›… ์•ˆํ‹ฐํŒจํ„ด

  • ๋ถˆํ•„์š”ํ•œ ์ถ”์ƒํ™”

    • UI๋ฅผ ์ œ์™ธํ•œ ์ฝ”๋“œ๋ฅผ ๋ชจ๋‘ ์ปค์Šคํ…€ ํ›…์œผ๋กœ ์ˆจ๊ธฐ๊ฒŒ ๋˜๋ฉด ์˜คํžˆ๋ ค ์ฝ”๋“œ๋ฅผ ์ดํ•ดํ•˜๊ธฐ ์–ด๋ ค์›Œ์ง„๋‹ค.

    • ์ˆจ๊ฒจ๋„ ๋˜๋Š” ๋กœ์ง์€ ์ปค์Šคํ…€ ํ›…์— ์ˆจ๊ธฐ๊ณ , ํ•ต์‹ฌ ๋กœ์ง์€ ์ปดํฌ๋„ŒํŠธ ๋‚ด์— ๋‘๋Š” ๊ฒƒ์ด ๋” ์ข‹์„ ์ˆ˜ ์žˆ๋‹ค.

  • ๋„ˆ๋ฌด ๋งŽ์€ ์ฑ…์ž„

    • ํ•˜๋‚˜์˜ ์ปค์Šคํ…€ํ›…์— ์—ฌ๋Ÿฌ ์—ญํ• ์ด ์„ž์—ฌ์žˆ์œผ๋ฉด ํ•ด๋‹น ํ›…์„ ์‚ฌ์šฉํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์ง€๋‚˜์น˜๊ฒŒ ๋ณต์žกํ•ด ์งˆ ์ˆ˜ ์žˆ๋‹ค.

    • ์ปค์Šคํ…€ ํ›…๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋‹จ์ผ์ฑ…์ž„์›์น™์— ๋”ฐ๋ผ ์ž‘์„ฑ๋˜์–ด์ ธ์•ผ ํ•œ๋‹ค.

Last updated