useRef ๋ฅผ ์์ฃผ ์ฌ์ฉํ์ง ์๋๋ฐ, ์ค๋๋ง์ ์ ๋ฌด๋ฅผ ๋ณด๋ค๊ฐ ์ฌ์ฉํ ์ผ์ด ์๊ฒผ์๋ค. ๊ทธ๋์ ๋ค์ ํ๋ฒ ์ ๋ฆฌํด๋ณธ๋ค!!
useRef ์ฌ์ฉํ๊ธฐ
๋ฆฌ์กํธ๋ฅผ ์ฌ์ฉํ๋ฉด์ ์ฃผ๋ก useRef๋ฅผ ์ฌ์ฉํ ๋๋ ํน์ DOM ์์์๊ฒ ์ ๊ทผํด์ผํ ๋์ด๋ค. ์ปดํฌ๋ํธ์ ์๊ธด ์คํฌ๋กค ๋์์ ์ ์ดํด์ผํ๋ ์ํฉ์ด ์์๋๋ฐ, ์ด๋ useRef๋ฅผ ์จ์ ํ๋ฉด ๋๋ค. ์ด ์ธ์๋ ํฌ์ปค์ค๋ฅผ ์ค์ ํด์ค์ผํ๋ค๋์ง, ํฌ๊ธฐ๋ฅผ ํน์ ํด์ผํ๋ค๋์ง DOM์์์ ๋ํ ์ธ์ธํ ๊ฒ๋ค์ด ํ์ํ ๋ ์ธ ์ ์๋ค.
์ ๋ ๋ฆฌ์กํธ๋ฅผ ํจ์ํ์ผ๋ก ์ฐ๊ณ ์๊ธฐ๋๋ฌธ์ useRef hook์ ๋ํ ์ด์ผ๊ธฐ๋ฅผ ํฉ๋๋ค. ํด๋์คํ์ ์ฝ๋ฐฑํจ์๋ ์จ์ผํ๊ณ . ์ด์ง ๋ฐฉ๋ฒ์ด ๋ค๋ฆ ๋๋ค.
useRef ์ ์ธํ๊ธฐ
์ ์ธ ๋ฐฉ๋ฒ์ ๊ฐ๋จํฉ๋๋ค. useRef ๋ฅผ ์ฌ์ฉํด์ ๋ณ์๋ฅผ ์ ์ธํด์ฃผ๊ณ ๊ทธ ์์ ์ด๊ธฐ๊ฐ์ ๋ฃ์ด์ค๋๋ค.
๊ฐ๋ฅ ๋ณ์์ ์ ํ์ผ๋ก ์ด๊ธฐ๊ฐ์ ๋ฃ์ด์ฃผ์ง ์์ผ๋ฉด ์๋ฌ๊ฐ ๋ฐ์ํ๊ณ ์, ํ์ ์คํฌ๋ฆฝํธ์ ํจ๊ป ์ธ ๋๋ ํ์ ๋ ์ ์ธํด์ค์ผํฉ๋๋ค.
const boxRef=useRef(initalValue);
//with TypeScript
const boxRef=useRef<Number>(null);
์ ํํ DOM์ ref ๋ฅผ ์ ์ธํด์ฃผ๊ณ ๊ทธ ์์ ์ ์ธํ ๋ณ์๋ช ์ ๋ฃ์ด์ค๋๋ค.
<div ref={boxRef}>
<h1>hello world</h1>
</div>
์ ์ค์ง์ ์ผ๋ก ์ ๊ทผํ DOM์ ์ด๋ป๊ฒ ์จ์ผํ ๊น์?
const el = boxRef.current
๋ค์ current๋ฅผ ๋ถ์ฌ์ฃผ์๋ฉด ํด๋น DOM์ ์๋ฆฌ๋จผํธ๋ฅผ ๊ฐ์ ธ์ฌ ์ ์๋ต๋๋ค. ํฌ์ปค์ค๊ฐ ํ์ํ๋ฉด ๊ทธ ๋ค์ focus()๋ฅผ ๋ถ์ฌ์ฃผ์๋ฉด ๋ฉ๋๋ค. ์ฐธ ์ฝ์ฃ ?
React - useRef ๊ณต์๋ฌธ์
์์์ ๊ฐ๋ณ๊ฒ ์ค๋ช ํ ๋ด์ฉ๋ค์ ๊ณต์๋ฌธ์์์ ๊ธธ๊ฒ~ ๋ณด์ค ์ ์๋ต๋๋ค
'๊ฐ๋ฐ > React' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฆฌ์กํธ] React-Query - 1. data fetch & error (0) | 2023.05.08 |
---|---|
[๋ฆฌ์กํธ] React image file Resize ํ๊ธฐ / react-image-file-resizer (0) | 2022.11.28 |
React Testing Library ์ฌ์ฉํ๊ธฐ (from Scratch) - 1 (0) | 2022.04.29 |
[React] ๋ค๊ตญ์ด ์ฒ๋ฆฌํ๊ธฐ - i18n ์ฌ์ฉํ๊ธฐ (0) | 2022.04.02 |
[React] React-Query ๋? (0) | 2022.03.28 |