useRef
λ λ λλ©μ νμνμ§ μμ κ°μ μ°Έμ‘°ν μ μλ Reactν
μ
λλ€.
const ref = useRef(initialValue)
useRef(initialValue)
import { useRef } from 'react'; function MyComponent() { const intervalRef = useRef(0); const inputRef = useRef(null); // ...
맀κ°λ³μ
initialValue
: ref κ°μ²΄μ current
νλ‘νΌν° μ΄κΈ° μ€μ κ°μ
λλ€.λ°νκ°
current
: μ²μμλ μ λ¬ν initialValue
λ‘ μ€μ λ©λλ€. ref κ°μ²΄λ₯Ό JSXλ
Έλμ ref
μμ±μΌλ‘ Reactμ μ λ¬νλ©΄ Reactλ current
νλ‘νΌν°λ₯Ό μ€μ ν©λλ€.refλ₯Ό μ¬μ©νλ©΄ λ€μμ 보μ₯ν©λλ€.
- (λ λλ§ ν λλ§λ€ μ¬μ€μ λλ μΌλ° λ³μμ λ¬λ¦¬) 리λ λλ§ μ¬μ΄μ μ 보λ₯Ό μ μ₯ν μ μμ΅λλ€.
- (리λ λλ§μ μ΄λ°νλ state λ³μμ λ¬λ¦¬) λ³κ²½ν΄λ 리λ λλ§μ μ΄λ°νμ§ μμ΅λλ€.
- (μ λ³΄κ° κ³΅μ λλ μΈλΆ λ³μμ λ¬λ¦¬) κ°κ°μ μ»΄ν¬λνΈμ λ‘μ»¬λ‘ μ μ₯λ©λλ€.
λ λλ§ μ€μλ ref.current
λ₯Ό μ°κ±°λ μ½μ§λ§μΈμ.
useImperativeHandle
ref
λ‘ λ
ΈμΆλλ νΈλ€μ μ¬μ©μκ° μ§μ μ μν μ μκ² ν΄μ£Όλ React ν
μ
λλ€.useImperativeHandle(ref, createHandle, dependencies?)
import { forwardRef, useImperativeHandle } from 'react'; const MyInput = forwardRef(function MyInput(props, ref) { useImperativeHandle(ref, () => { return { // ... your methods ... // ... λ©μλλ μ¬κΈ°μ μμ±ν©λλ€ ... }; }, []);
맀κ°λ³μ
ref
:forwardRef
λ λ ν¨μμμ λ λ²μ§Έ μΈμλ‘ λ°μ refμ λλ€.
createHandle
: μΈμκ° μκ³ λ ΈμΆνλ €λ ref νΈλ€μ λ°ννλ ν¨μμ λλ€.
- optional
dependencies
: createHandle μ½λ λ΄μμ μ°Έμ‘°νλ λͺ¨λ λ°μν κ°μ λͺ¨λ λ°μν κ°μ λμ΄ν λͺ©λ‘μ λλ€.
Β