[React-React Hooks] useRef
๐ useRef๋ก ํน์ DOM ์ ํํ๊ธฐ
๋ฆฌ์กํธ๋ก ์ฝ๋๋ฅผ ์์ฑํ๋ค ๋ณด๋ฉด ์ง์ DOM์์์ ์ ๊ทผํด์ผํ๋ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค.
useRef
๋ฅผ ์ฌ์ฉํ๋ฉฐ ํน์ DOM์์์ ์ ๊ทผํ ์ ์์ต๋๋ค.
const nameInput = useRef(); // DOM ์ ๊ทผ
๋ณ์ ํน์ ์์์ useRef
๋ฅผ ํธ์ถํ๋ฉด ํน์ ๊ฐ์ฒด๊ฐ ์์ฑ๋ฉ๋๋ค.
<input
name="name"
placeholder="์ด๋ฆ"
onChange={onChange}
value={name}
ref={nameInput} // useRef
/>
์ํ๋ ๊ณณ์ useRef
๋ฅผ ํธ์ถํด ๋ณ์๋ฅผ ์ง์ ํฉ๋๋ค.
const onReset = () => {
// ์ด๊ธฐํ ๊ธฐ๋ฅ
setInputs({
name: "",
nickname: "",
});
nameInput.current.focus();
};
onReset
ํจ์๋ฅผ ํธ์ถํ๋ฉด nameInput
์ ์ง์ ํ DOM์์์ ์ ๊ทผํ์ฌ focus
๊ธฐ๋ฅ์ ํธ์ถํฉ๋๋ค.
๐ useRef๋ก ์ปดํฌ๋ํธ ์์ ๋ณ์ ๋ง๋ค๊ธฐ
useRef
๋ DOM์์์ ์ ๊ทผํ ๋๋ ์ฌ์ฉํ์ง๋ง ์ด๋ค ๊ฐ์ ๊ณ์ ๊ธฐ์ตํ๊ณ ์ถ์ ๋๋ ์ฌ์ฉํฉ๋๋ค.
useRef
๋ก ๋ง๋ ์ปดํฌ๋ํธ์์ ๋ณ์๋ ๋ณ๊ฒฝ๋์ด๋ ๋ฆฌ๋ ๋๋ง ๋์ง ์์ต๋๋ค.
function App() {
...
const nextId = useRef(4);
const onCreate = () => {
console.log(nextId.current); // 4
nextId.current += 1;
}
...
}
nextId
์ ๊ฐ์ด ๋ณ๊ฒฝ๋์ด๋ ์ปดํฌ๋ํธ๊ฐ ๋ฆฌ๋ ๋๋ง๋์ง ์๋๋ค.
์ถ์ฒ
- ํจ์คํธ์บ ํผ์ค for velopert
๐ฌ ์ต์ ๋๊ธ