useCallback
useMemo์ ๋น์ทํ๊ฒ ๋ฉ๋ชจ๋ฆฌ ๋ญ๋น ๋ฐ ์ฑ๋ฅ์ต์ ํ๋ฅผ ์ํด ์ฌ์ฉ๋๋ hook์ ๋๋ค.
useMemo๋ ๊ฐ์ ์ ์ฅํ๊ณ ์์๋ค๊ณ ํ๋ฉด, useCallback์ ํจ์๋ฅผ ๊ธฐ์ตํ๊ณ ์์ต๋๋ค.
์ปดํฌ๋ํธ ๋ด๋ถ์์๋ ์ฃผ๋ก ๊ฐ๋จํ ํจ์๋ณด๋ค๋ ํจ์ ์์ฑ ์์ฒด์ ๋น์ฉ์ด ํด ๋ ์ฌ์ฉํ์ง๋ง,
์์ ์ปดํฌ๋ํธ์ ํจ์๋ฅผ props๋ก ๋๊ธธ ๋๋ ํด๋น ํจ์๋ useCallback์ผ๋ก ๊ฐ์ธ์ผํ๋ค.
const ๋ณ์ = useCallback(()⇒{}), [deps]);
deps์ ์์กด์ฑ์ ๋ถ์ฌํ์ฌ ํด๋น ๊ฐ์ด ๋ณํ ๋ ํธ์ถํ๊ฒ ๋ฉ๋๋ค.
์ด์ ์ ์ฌ์ฉํ๋ useEffect์ ๋์ผํฉ๋๋ค.
์
onClickํจ์์ useCallback์ ์ค์ผ๋ก์จ ๋ฆฌ๋ ๋๋ง ๋ ๋, ํจ์๊ฐ ๋ค์ ์ ์๋๋ ๊ฒ์ ๋ง์ ์ ์์ต๋๋ค.
deps ์์ด ๋น์๊ธฐ ๋๋ฌธ์
AppClick๋ฒํผ์ ๋๋ฌ์ count๊ฐ ์ฆ๊ฐํด๋, TextClick์ ํ์ ๋ 0์ด ์ฐํ๋ ๊ฒ์ ํ์ธํ ์ ์์ผ๋ฉฐ,
deps์ count๋ฅผ ๋ฃ์ด์ฃผ๊ฒ ๋๋ฉด, ์ฆ๊ฐํ count๊ฐ ์ฐํ๋ ๊ฒ์ ํ์ธ ํ ์ ์์ต๋๋ค.
useCallback์ด๋ useMemo๋ฅผ ์์ฃผ ์ฌ์ฉํ๋ ๊ฒ๋ ์ฑ๋ฅ์ ํ์ ์์ธ์ด ๋๋ค๊ณ ํฉ๋๋ค.
'์ฑ๋ฅ ์ข์์ง๊ฒ ์ง' ๋ผ๊ณ ์๊ฐํ๊ณ ๋จ๋ฐํ๊ธฐ๋ณด๋ค๋ ๊ผญ ํ์ํ ๊ณณ์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ ๋ฏ์ถ์ต๋๋ค.
(๋์ค์ ๋ฐ๋ก ์ด์ ๋ฅผ ์ฐพ์๋ด์ผ๋ ๋ฏ ์ถ์ต๋๋ค.)
'Front-End > React' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
React] Hook : useState ๋น๋๊ธฐ โ ๋๊ธฐ ํ๋ ๋ฒ (0) | 2023.06.22 |
---|---|
React] Hook : useReducer (0) | 2023.06.22 |
React] Hook : useMemo (0) | 2023.06.20 |
React] Hook : useRef (0) | 2023.06.20 |
React] Strict Mode (0) | 2023.06.20 |