๋ฌดํ ์คํฌ๋กค์ ๊ตฌํํ๋ฉฐ useRef์ ๋ํ ๋ด์ฉ์ด ๋์์ ์ ๋ฆฌ๋ฅผ ํ๋ฒ ํด๋ณด์!
Ref: reference
querySelector๋์ ์ฌ์ฉ์ด ๊ฐ๋ฅ
useRef๋ก ๊ด๋ฆฌํ๋ ๊ฐ์ ๊ฐ์ด ๋ณํด๋ ํ๋ฉด์ด ๋ ๋๋ง๋์ง ์์
์ฆ, useRef๋ ๋ ๋๋ง์ ํ์ํ์ง ์์ ๊ฐ์ ์ฐธ์กฐํ ์ ์๋ React ํ
const ref = userRef(value)
// ref=> ๊ฐ์ฒด
// {current:value}
// ์ ๋งค๊ฐ๋ณ์์ value๊ฐ current๊ฐ์ผ๋ก ๋ค์ด๊ฐ
useRef๋ ๋ฆฌ์กํธ ์๋ช
์ฃผ๊ธฐ ์ ์ฒด๋ฅผ ํตํด ์ ์ง๊ฐ ๋๋ค.
์ฆ, ๊ณ์ ์ ์ฅ์ด ๋์ด์ง
์ฌ์ฉ๋ฒ
- ์ ์ฅ๊ณต๊ฐ
State์ ๋ณํ => ๋ ๋๋ง => ์ปดํฌ๋ํธ ๋ด๋ถ ๋ณ์๋ค ์ด๊ธฐํ
Ref์ ๋ณํ => No ๋ ๋๋ง => ๋ณ์์ ๊ฐ์ด ์ ์ง๋จ
๋ํ Ref๋ ์ปดํฌ๋ํธ๊ฐ ๋ ๋๋ง ๋์ด๋ ๊ทธ ๊ฐ์ ์ ์งํ๊ณ ๊ฐ๋๋ค.
- Dom ์์์ ์ ๊ทผ
๋ง์น Document.querySelector ๊ฐ์ ์ญํ ์ ํ ์ ์์
import {useRef} from 'react'
const App =()=>{
const inputRef = useRef()
useEffrct(()=>{
console.log(inputRef)
},[])
return (
<div>
<input ref={inputRef} />
// ์ด๋ ๊ฒํ๋ฉด current์์ inputObject๊ฐ ๋ค์ด๊ฐ
<button>๋ก๊ทธ์ธ</button>
</div>
)
}
ref๋ผ๋ props๋ฅผ ์ด์ฉํ๋ฉด ํด๋น ์๋ฆฌ๋จผํธ์ ๋ํ ํ๊ทธ ์ ๋ณด๋ฅผ ์ป์ ์ ์๋ ๊ฒ์ด๋ค!