Lieto: UseRef ๐Ÿš€

๋ฐ•์ƒํ•˜ยท2024๋…„ 1์›” 18์ผ
0

Lieto

๋ชฉ๋ก ๋ณด๊ธฐ
6/9
post-thumbnail

๋ฌดํ•œ ์Šคํฌ๋กค์„ ๊ตฌํ˜„ํ•˜๋ฉฐ useRef์— ๋Œ€ํ•œ ๋‚ด์šฉ์ด ๋‚˜์™€์„œ ์ •๋ฆฌ๋ฅผ ํ•œ๋ฒˆ ํ•ด๋ณด์ž!

useRef

Ref: reference

querySelector๋Œ€์‹  ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅ
useRef๋กœ ๊ด€๋ฆฌํ•˜๋Š” ๊ฐ’์€ ๊ฐ’์ด ๋ณ€ํ•ด๋„ ํ™”๋ฉด์ด ๋ Œ๋”๋ง๋˜์ง€ ์•Š์Œ

์ฆ‰, useRef๋Š” ๋ Œ๋”๋ง์— ํ•„์š”ํ•˜์ง€ ์•Š์€ ๊ฐ’์„ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ๋Š” React ํ›…

const ref = userRef(value)

// ref=> ๊ฐ์ฒด
// {current:value}
// ์œ„ ๋งค๊ฐœ๋ณ€์ˆ˜์˜ value๊ฐ€ current๊ฐ’์œผ๋กœ ๋“ค์–ด๊ฐ


useRef๋Š” ๋ฆฌ์•กํŠธ ์ƒ๋ช…์ฃผ๊ธฐ ์ „์ฒด๋ฅผ ํ†ตํ•ด ์œ ์ง€๊ฐ€ ๋œ๋‹ค.
์ฆ‰, ๊ณ„์† ์ €์žฅ์ด ๋˜์–ด์ง

์‚ฌ์šฉ๋ฒ•

  1. ์ €์žฅ๊ณต๊ฐ„
    State์˜ ๋ณ€ํ™” => ๋ Œ๋”๋ง => ์ปดํฌ๋„ŒํŠธ ๋‚ด๋ถ€ ๋ณ€์ˆ˜๋“ค ์ดˆ๊ธฐํ™”
    Ref์˜ ๋ณ€ํ™” => No ๋ Œ๋”๋ง => ๋ณ€์ˆ˜์˜ ๊ฐ’์ด ์œ ์ง€๋จ
    ๋˜ํ•œ Ref๋Š” ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋ Œ๋”๋ง ๋˜์–ด๋„ ๊ทธ ๊ฐ’์„ ์œ ์ง€ํ•˜๊ณ  ๊ฐ–๋Š”๋‹ค.
  1. 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๋ฅผ ์ด์šฉํ•˜๋ฉด ํ•ด๋‹น ์—˜๋ฆฌ๋จผํŠธ์— ๋Œ€ํ•œ ํƒœ๊ทธ ์ •๋ณด๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด๋‹ค!

0๊ฐœ์˜ ๋Œ“๊ธ€

๊ด€๋ จ ์ฑ„์šฉ ์ •๋ณด