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 μ½λ λ΄μμ μ°Έμ‘°νλ λͺ¨λ λ°μν κ°μ λͺ¨λ λ°μν κ°μ λμ΄ν λͺ©λ‘μ λλ€.
Β
