useCallback
๐ useCallback()
useCallback์ useMemo์ ๋น์ทํ Hook์ ๋๋ค. useMemo๋ ํน์ ๊ฒฐ๊ด๊ฐ์ ์ฌ์ฌ์ฉํ ๋ ์ฌ์ฉํ๋ ๋ฐ๋ฉด, useCallback์ ํน์ ํจ์๋ฅผ ์๋ก ๋ง๋ค์ง ์๊ณ ์ฌ์ฌ์ฉํ๊ณ ์ถ์ ๋ ์ฌ์ฉํ๋ ํจ์์ ๋๋ค.
useCallback ์ฌ์ฉ๋ฒ
const memoizedCallback = useCallback(function, deps);
useCallback์ ์ฒซ ๋ฒ์งธ ์ธ์๋ก ๋์ด์จ ํจ์๋ฅผ, ๋ ๋ฒ์งธ ์ธ์๋ก ๋์ด์จ ๋ฐฐ์ด ํํ์ ํจ์ ์คํ ์กฐ๊ฑด์ ๊ฐ์ด ๋ณ๊ฒฝ๋ ๋๊น์ง ์ ์ฅํด๋๊ณ ์ฌ์ฌ์ฉํ ์ ์๊ฒ ํด ์ค๋๋ค.
์๋ฅผ ๋ค์ด ๋ฆฌ์กํธ ์ปดํฌ๋ํธ ์์ ํจ์๊ฐ ์ ์ธ๋์ด์์ ๋ ์ด ํจ์๋ ํด๋น ์ปดํฌ๋ํธ๊ฐ ๋ ๋๋ง ๋ ๋๋ง๋ค ์๋ก์ด ํจ์๊ฐ ์์ฑ๋๋๋ฐ, useCallback์ ์ฌ์ฉํ๋ฉด ํด๋น ์ปดํฌ๋ํธ๊ฐ ๋ ๋๋ง ๋๋๋ผ๋ ๊ทธ ํจ์๊ฐ ์์กดํ๋ ๊ฐ(deps)๋ค์ด ๋ฐ๋์ง ์๋ ํ ๊ธฐ์กด ํจ์๋ฅผ ์ฌ์ฌ์ฉํ ์ ์์ต๋๋ค.
const add = () => x + y;
์์๋ก ์์ ๊ฐ์ ํจ์๊ฐ ์๋ค๊ณ ํ ๋ useCallback์ ์ฌ์ฉํ๋ฉด ์๋์ ๊ฐ์ด ์ ์ฉํ ์ ์์ต๋๋ค.
const add = useCallback(() => x + y, [x, y]);
์ถ์ฒ: https://cocoon1787.tistory.com/798
Leave a comment