[231012] useMemo , useCallback
useMemo , useCallback
- μ±λ₯ μ΅μ νλ₯Ό μν ν
ν¨μ
- λ λ€ λ©λͺ¨μ΄μ μ΄μ
μ νκ³ μλ‘ κ³μ°νλ κ²μ λ°©μ§νμ¬ μ»΄ν¬λνΈμ λ λλ§ μ±λ₯μ ν₯μμν€λ λ° λμμ μ€λ€.
- λ¨λ°νλ©΄ μ±λ₯μ΄ λ¨μ΄μ§, λ©λͺ¨λ¦¬ ν λΉνκΈ° λλ¬Έμ (μ°Έκ³ : https://velog.io/@lky5697/stop-using-usememo-now)
useMemo
- κ°μ λ©λͺ¨μ΄μ μ΄μ
(μμκ°)
- 볡μ‘ν λ©λͺ¨ μ¬λ¬λ² νμ§ μκΈ° μν΄ μ¬μ©
import { useMemo } from "react"
function MyComponent({ data }) {
// dataκ° λ³κ²½λ λλ§ expensiveCalculation ν¨μλ₯Ό λ€μ μ€ν
const result = useMemo(() => {
return expensiveCalculation(data)
}, [data])
return <div>{result}</div>
}
useCallback
- μ½λ°±ν¨μ (μ°Έμ‘°κ°μ λν κ²)
- useCallback μ μ°λλΌλ λΆλͺ¨κ° 리λ λλ§λλ©΄ μμλ 리λ λλ§ λλ€.
- κ²°κ³Όμ μΌλ‘, μμ μ»΄ν¬λνΈλ₯Ό react memo λ‘ λ°κΏμΌ μμμ»΄ν¬λνΈκ° useCallbackμ μ¬μ©νκ³ μλ μ½λ°±ν¨μλ λ©λͺ¨μ΄μ μ΄μ
μ΄ μ λλ‘ λ¨
import { useCallback } from "react"
function MyComponent({ onClick }) {
const handleClick = useCallback(() => {
// ν΄λ¦ μ΄λ²€νΈ νΈλ€λ¬
}, []) // λΉ μμ‘΄μ± λ°°μ΄: νΈλ€λ¬λ νμ λμΌν ν¨μλ₯Ό λ°ν
return <button onClick={handleClick}>Click Me</button>
}
Leave a comment