React Study

React - useRef ๋ณ€์ˆ˜ ์„ ์–ธํ•˜๊ธฐ

eddie0329 2020. 12. 5. 17:17
๋ฐ˜์‘ํ˜•

๋ชฉ๋ก

  • Introduction
  • useRef
  • Conclusion

๐Ÿ“Œ Introduction

์•ˆ๋…•ํ•˜์„ธ์š”. ์˜ค๋Š˜์€ useRef๋กœ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•˜๋Š” ๊ฒƒ์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ฐ’์„ ์„ ์–ธํ• ๋•Œ react์—์„œ๋Š” ๋‘๊ฐ€์ง€ ๋ฐฉ์‹์ด ์žˆ์–ด์š”. ํ•˜๋‚˜๋Š” useState๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹์ด๊ณ  ํ•˜๋‚˜๋Š” useRef๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ๋‘๊ฐœ์˜ ์ฐจ์ด์ ์€ useState๋Š” ๊ฐ’์ด ๋ณ€๊ฒฝ์ด ๋ ๋•Œ rerendering์ด ์ด๋ฃจ์–ด ์ง€๊ณ  useRef๋Š” ๊ฐ’์ด ๋ณ€๊ฒฝ์ด ๋˜์–ด๋„ rerendering์ด ์ด๋ฃจ์–ด์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ component๊ฐ€ re-rendering๋ ๋•Œ์—๋„ ๊ฐ’์„ ๊ธฐ์–ตํ•˜๊ณ ์ž ํ• ๋•Œ useRef
๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ ๊ธฐ๋ณธ์ ์ธ ๋ฌธ๋ฒ•๊ณผ ์‚ฌ์šฉํ•˜๋Š” ์˜ˆ์ œ๋ฅผ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

๐Ÿ“Œ useRef

  const nextId = useRef(4); // component๊ฐ€ re rendering ๋ ๋•Œ์—๋„ 4๋กœ ๊ธฐ์–ต์ด ๋ฉ๋‹ˆ๋‹ค.

  const onCreate = () => {
    console.log(nextId.current);  // 4๋กœ ์ฐํžˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
    nextId.current += 1;
  }

์œ„์˜ ์ฝ”๋“œ์—์„œ ๋ˆˆ์น˜๋ฅผ ์ฑ„์…จ๊ฒ ์ง€๋งŒ useRef์— ์ ‘๊ทผ์„ ํ• ๋•Œ๋Š” current๋กœ ์ ‘๊ทผ์„ ํ•˜๊ฒŒ๋˜๊ณ  ๊ฐ’์„ ๋ฐ”๊พธ๋Š” ๋ฐฉ๋ฒ•์€ current์˜ ๊ฐ’์„ ์ง์ ‘์ ์œผ๋กœ ๋ฐ”๊ฟ”์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

๐Ÿ“Œ Conclusion

์•ˆ๋…•ํ•˜์„ธ์š”. ์ด๋ ‡๊ฒŒ useRef์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์•˜์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ ๋‹ค์Œ ํฌ์ŠคํŒ…์„ ๊ธฐ๋‹ค๋ ค์ฃผ์„ธ์š”~~! ์•ˆ๋…•!

๋ฐ˜์‘ํ˜•