useMemo

๊น€๋‚จ๊ฒฝยท2023๋…„ 1์›” 20์ผ

react

๋ชฉ๋ก ๋ณด๊ธฐ
25/37

์˜๋ฏธ

๐Ÿ’ก ํŠน์ • ๊ฐ’์„ ์žฌ์‚ฌ์šฉํ•˜๊ณ ์ž ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” Hook
๐Ÿ’ก ์ด์ „์— ๊ตฌ์ถ•๋œ ๋ Œ๋”๋ง๊ณผ ์ƒˆ๋กœ์ด ๊ตฌ์ถ•๋˜๋Š” ๋ Œ๋”๋ง์„ ๋น„๊ตํ•ด value๊ฐ’์ด ๋™์ผํ•  ๊ฒฝ์šฐ์—๋Š” ์ด์ „ ๋ Œ๋”๋ง์˜ value๊ฐ’์„ ๊ทธ๋Œ€๋กœ ์žฌํ™œ์šฉ

Memoization
๊ธฐ์กด์— ์ˆ˜ํ–‰ํ•œ ์—ฐ์‚ฐ์˜ ๊ฒฐ๊ณผ๊ฐ’์„ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ์„ ํ•ด๋‘๊ณ ,
๋™์ผํ•œ ์ž…๋ ฅ์ด ๋“ค์–ด์˜ค๋ฉด ์žฌํ™œ์šฉํ•˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ๋ฒ•

์ ์šฉ

import { useMemo } from "react";

export default function App() {
  const [val1, setVal1] = useState(0);
  const [val2, setVal2] = useState(0);
  
  const add = (num1, num2) => {
    return Number(num1) + Number(num2);
  };
  
  const answer = useMemo(() => add(val1, val2), [val1, val2]);
  
  return (
    <div>
      <input
        value={val1}
        type="number"
        onChange={(e) => setVal1(Number(e.target.value))}
      />
      <input
        value={val2}
        type="number"
        onChange={(e) => setVal2(Number(e.target.value))}
      />
      <div>{answer}</div>
    </div>
  );
}
profile
๊ธฐ๋ณธ์— ์ถฉ์‹คํ•˜๋ฉฐ ์•ž์œผ๋กœ ๋ฐœ์ „ํ•˜๋Š”

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