-
useCallback
๋ํ useMemo์ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ฉ๋ชจ์ด์ ์ด์ ๊ธฐ๋ฒ์ ์ด์ฉํ Hook -
useMemo
๋ ๊ฐ์ ์ฌ์ฌ์ฉ์ ์ํด ์ฌ์ฉํ๋ Hook์ด๋ผ๋ฉด,useCallback
์ ํจ์์ ์ฌ์ฌ์ฉ์ ์ํด ์ฌ์ฉํ๋ Hook์import React, { useCallback } from "react"; // import ํ์ function Caculator({x, y}){ const add = useCallback(() => x + y, [x, y]); return <> <div> {add()} </div> </>; }
-
useCallback
Hook์ ์ฌ์ฉํ๋ฉด ๊ทธ ํจ์๊ฐ ์์กดํ๋ ๊ฐ๋ค์ด ๋ฐ๋์ง ์๋ ํ ๊ธฐ์กด ํจ์๋ฅผ ๊ณ์ํด์ ๋ฐํํจ. ์ฆ ์์ ์์์์ x์ y๊ฐ์ด ๋์ผํ๋ค๋ฉด ๋ค์ ๋ ๋๋ง ๋ ์ด ํจ์๋ฅผ ๋ค์ ์ฌ์ฉํจ. -
๋จ,
useCallback
๋ง ์ฌ์ฉํ๋ค๋ฉดuseMemo
์ ๋นํด ๊ด๋ชฉํ ๋งํ ์ต์ ํ๋ฅผ ๋๋ ์๋ ์์ -
useCallback
์ ํจ์๋ฅผ ํธ์ถ์ ํ์ง ์๋ Hook์ด ์๋๋ผ, ๊ทธ์ ๋ฉ๋ชจ๋ฆฌ ์ด๋๊ฐ์ ํจ์๋ฅผ ๊บผ๋ด์ ํธ์ถํ๋ Hook์ด๊ธฐ ๋๋ฌธ -
๋ฐ๋ผ์ ๋จ์ํ ์ปดํฌ๋ํธ ๋ด์์ ํจ์๋ฅผ ๋ฐ๋ณตํด์ ์์ฑํ์ง ์๊ธฐ ์ํด
useCallback
์ ์ฌ์ฉํ๋ ๊ฒ๋ณด๋ค, ์์ ์ปดํฌ๋ํธ์ props๋ก ํจ์๋ฅผ ์ ๋ฌํด ์ค ๋ ์ฌ์ฉํ๊ธฐ ์ข์.
useCallback
์ ์ฐธ์กฐ ๋๋ฑ์ฑ์ ์์กดํจ.- React๋ JavaScript ์ธ์ด๋ก ๋ง๋ค์ด์ง ์คํ์์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๊ธฐ์ ๊ธฐ๋ณธ์ ์ผ๋ก JavaScript์ ๋ฌธ๋ฒ์ ๋ฐ๋ผ๊ฐ.
- JavaScript์์ ํจ์๋ ๊ฐ์ฒด์ธ๋ฐ, ๊ฐ์ฒด๋ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅํ ๋ ๊ฐ์ ์ ์ฅํ๋ ๊ฒ ์๋๋ผ ๊ฐ์ ์ฃผ์๋ฅผ ์ ์ฅํ๊ธฐ ๋๋ฌธ์, ๋ฐํํ๋ ๊ฐ์ด ๊ฐ์์ง๋ผ๋ ์ผ์น์ฐ์ฐ์๋ก ๋น๊ตํ์ ๋ false๊ฐ ์ถ๋ ฅ๋จ.
- React๋ ๋ง์ฐฌ๊ฐ์ง. React๋ ๋ฆฌ๋ ๋๋ง ์ ํจ์๋ฅผ ์๋ก์ด ๋ง๋ค์ด์ ํธ์ถ์ ํ๋ฉฐ, ์๋ก์ด ๋ง๋ค์ด ํธ์ถ๋ ํจ์๋ ๊ธฐ์กด์ ํจ์์ ๊ฐ์ ํจ์๊ฐ ์๋
- ๊ทธ๋ฌ๋
useCallback
์ ์ด์ฉํด ํจ์ ์์ฒด๋ฅผ ์ ์ฅํด์ ๋ค์ ์ฌ์ฉํ๋ฉด ํจ์์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์ ๊ฐ์ ์ ์ฅํ๋ค๊ฐ ๋ค์ ์ฌ์ฉํ๋ ๊ฒ. - ๋ฐ๋ผ์ React ์ปดํฌ๋ํธ ํจ์ ๋ด์์ ๋ค๋ฅธ ํจ์์ ์ธ์๋ก ๋๊ธฐ๊ฑฐ๋ ์์ ์ปดํฌ๋ํธ์ prop์ผ๋ก ๋๊ธธ ๋ ์์์น ๋ชปํ ์ฑ๋ฅ ๋ฌธ์ ๋ฅผ ๋ง์ ์ ์์.