๐ย Reference
๐ย Chapter
useMemo
useEvent
useEffect
โฃ
useCallback
- useCallback
- ํน์ ํจ์๋ฅผ ์๋ก ๋ง๋ค์ง ์๊ณ ์ฌ ์ฌ์ฉํ๊ณ ์ถ์ ๋ ์ฌ์ฉํ๋ค.
- ํจ์์ ๊ฒฐ๊ณผ ๊ฐ์ ๊ธฐ๋กํ๋ ๊ฒ์ด ์๋๋ผ ํจ์ ์์ฒด๋ฅผ ๊ธฐ๋กํ๋ค.
useCallback
์ ํจ์๋ฅผ ๋ฉ๋ชจ์ด์ ์ด์
(memoization)ํ๊ธฐ ์ํด์ ์ฌ์ฉ๋๋ hook ํจ์์ด๋ค.
- ์ฒซ ๋ฒ์งธ ์ธ์๋ก ๋์ด์จ ํจ์๋ฅผ, ๋ ๋ฒ์งธ ์ธ์๋ก ๋์ด์จ ๋ฐฐ์ด ๋ด์ ๊ฐ์ด ๋ณ๊ฒฝ๋ ๋๊น์ง ์ ์ฅํด ๋๊ณ ์ฌ ์ฌ์ฉํ ์ ์๊ฒ ํด์ค๋ค.
useCallback
์ deps ๋ฐฐ์ด์ ๋ฃ์ ๊ฐ์ด ๋ณ๊ฒฝ๋ ๋๋ง ์์ ์๋ ๋ฉ์๋๋ฅผ ์๋ก ์ ์ํ๊ณ , ๋ณ๊ฒฝ๋์ง ์์ผ๋ฉด ์ด์ ์ ์ ์ฅํด๋ ๊ฑธ ๊ทธ๋๋ก ์ฌ์ฉํ ๊ฒ์ด๋ค.
const memoizedCallback = useCallback(ํจ์, deps);
- deps
- ์ฌ์ค ํจ์๋ฅผ ์ ์ธํ๋ ๊ฒ์ ๋ฆฌ์์ค๋ฅผ ๋ง์ด ์ฐจ์งํ๋ ์์
์ ์๋๋ค.
- ๊ทธ๋ ์ง๋ง ๋ฆฌ๋ ๋๋ง์ด ๋ ๋๋ง๋ค ์๋ก ๋ง๋ค์ด์ง๋ ๊ฒ๋ณด๋ค ์ด๋ฏธ ๋ง๋ ํจ์๋ฅผ ํ์ํ ๋๋ง ์ฌ์ฉํ๋ ๊ฒ์ ์ค์ํ๋ค.
- ์ด๋ฐ ๊ฒ๋ค ํ๋์ฉ ์๊ปด์ ๋น ๋ฅด๊ณ ๊ฐ๋ ฅํ UX๊ฐ ํ์ํ๋ ๊ฒ์ด๋ค.
- ์์์ ์ต์ํ์ผ๋ก ์ฌ์ฉํ๋ ๊ฒ์ ํญ์ ๋ชฉํ๋ก ๋๊ณ ๊ณต๋ถ๋ฅผ ํด๋ณด์.
- ๊ฐ๋ฐ์๊ฐ ๊ณ์ํด์ ๊ณต๋ถํ๋ ๊ฐ์ฅ ํฐ ์ด์ ์ด๊ธฐ๋ ํ๋ค.
- useCallback์ ์ ์ธํ๋ค๊ณ ๋ฐ๋ก ์ ์ฉ๋์ง ์๋๋ค. ๋ React.memo๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ์์ง ๋ง์. ๊ทธ๋ฆฌ๊ณ ์์กด์ฑ ๋ฐฐ์ด์ ์ถฉ๋ถํ ๊ด๋ฆฌ ํด์ค์ผ ํ๋ค. ๋์ถฉ ํ๊ณ ๋์ด๊ฐ๋ฉด ์๊ฐ๋ง ๋ญ๋นํ ๊ฑธ์ง๋ ๋ชจ๋ฅธ๋ค. ๊ทธ๋ฆฌ๊ณ React.memo๋ฅผ ๋ ๋๋ง ๋ฐฉ์ง์ ๋ชฉ์ ์ผ๋ก ์ฌ์ฉํ์ง ๋ง์. ๋ฒ๊ทธ ๋ ์ ์๋ค.