useRef๋ ํน์ DOM์ ์ ํํ ์ ์๊ฒ ํด์ฃผ๋ hook ํจ์๋ค.
Ref๋ ๋ ๋๋ง์ด ๋์ง์๊ธฐ ๋๋ฌธ์ ๋ถํ์ํ ๋ ๋๋ง์ ๋ง์ ์ ์๋ค.
๋ณ๊ฒฝ์ ๋ ๋๋ง์ ๋ฐ์์ํค์ง ๋ง์์ผ ํ๋ ๊ฐ์ ๋ค๋ฃฐ ๋ ํธ๋ฆฌํ๋ค
useState์ useRef๋ฅผ ์ฌ์ฉํ์ฌ ๋ ํ ์ ์ฐจ์ด์ ์ ์ ํํ ์์๋ณด์.
useState๋ ํด๋ฆญํ ๋๋ง๋ค ๋ ๋๋ง์ด ๋๋ ๋ฐ๋ฉด์ useRef๋ ์ฝ์์ ์ฐํ์ง๋ง ๋ ๋๋ง์ ๋์ง ์๋๋ค. useState๋ก ๋ ํจ์๋ฅผ ํด๋ฆญํ๋ฉด ๋ ๋๋ง ๊ฐ์ด ๋ฐ์๋์ด ์ ์ฅ๋ ๊ฐ์ด ๋์จ๋ค.
input ์์์ focus๋ฅผ ์ค ๋ ์ฌ์ฉํ๋ค ์๋ฅผ ๋ค์ด ๋ก๊ทธ์ธ ํ์ด์ง๊ฐ ๋ก๋ฉ๋๋ฉด ์์ด๋๋ฅผ ๋ฃ๋ ๊ณต๊ฐ์ ๊ตณ์ด ํด๋ฆญํ์ง ์์๋ ๋ฐ๋ก ํค๋ณด๋๋ฅผ ์ณ์ ์ ๋ ฅํ ์ ์๊ฒ ํด์ค ์ ์๋ค.
import React, { useRef, useEffect } from 'react';
function App() {
const inputRef = useRef();
useEffect(() => {
inputRef.current.focus()
}, [])
return (
<div className="App">
<input ref={inputRef} type="text" placeholder='username'/>
</div>
);
}
export default App;