5. usehooks-ts
keyword
usehooks-ts
useBoolean
useEffectOnce
useFetch
useInterval
useEventListener
useLocalStorage
useDarkMode
swr
react-query
usehooks-ts
Custom Hook์ ๋ชจ์๋์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ, ์ ๋ง๋ค์ด ๋์ Custom Hook์ ํตํด ์์ด๋์ด๋ฅผ ์ป์ด๊ฐ์.
useBoolean
์ฐธ๊ณผ ๊ฑฐ์ง์ ํ๋ณํ๋ Hook, toggle๊ณผ ๊ฐ์ด ์๋๊ฐ ๋ช ํํ ํจ์๋ฅผ ์ฌ์ฉํ์.
useEffectOnce
๋น์ด์๋ ์์กด์ฑ ๋ฐฐ์ด์ ๋ฃ์ด ์ปดํฌ๋ํธ ๋ง์ดํธ ์ ๋ฑ ํ ๋ฒ๋ง ์คํํ๋ effect, once์ ๋ถ์ฌ ํ ๋ฒ๋ง ์คํ๋จ์ ๋ช ์์ ์ผ๋ก ์ ์ ์๋ค.
useFetch
์๋ฒ API์ ์์ฒญ์ ๋ณด๋ด๋ Hook, ๊ฐ๋จํ๊ฒ ์ฌ์ฉํ ๋ ์ ์ฉํ๋ค.
useInterval
setInterval์ ์ปดํฌ๋ํธ ๋ด๋ถ์์ ์ฌ์ฉํ ๋ ์ฃผ์ํ ์ ์ setInterval์ ์ฝ๋ฐฑํจ์๋ ํด๋ก์ ๋ก์ ์ธ๋ถ ๋ณ์๋ฅผ ์ฐธ์กฐํ๋ค. ๋๋ฌธ์ ํด๋น ๊ฐ์ด ๋ณ๊ฒฝ๋์์ด๋, ํจ์๊ฐ ์ ์๋ ๋น์์ ๊ฐ์ ๊ธฐ์ตํ๊ณ ์์ด ๋์ผํ ๊ฐ์ ์ฐธ์กฐํ๊ฒ ๋๋ค.
setInterval์ ์ฌ์ฉํด์ผ ํ ๊ฒฝ์ฐ useInterval์ ์ฌ์ฉํ๊ณ , ์ง์ ๊ตฌํ ํด์ผํ๋ค๋ฉด custom hook์ ๋ง๋ค์ด ํด๊ฒฐํด์ผํ๋ค.
useInterval ์ฝ๋
๋ด๋ถ ๋ก์ง์ useIsomorphicLayoutEffect Hook์ ์ฌ์ฉํ๊ณ ์๋๋ฐ ์คํ ํ๊ฒฝ์ด ๋ธ๋ผ์ฐ์ ๋ฉด DOM ๋ ๋๋ง ์ ์ ์คํ๋๋ useLayoutEffect ํ ์ ์ฌ์ฉํ๊ณ ์๋๋ผ๋ฉด useEffect๋ฅผ ์ฌ์ฉํ๋ค.
useEventListener
window ๊ฐ์ฒด์ ์ ๊ทผํ๋ ํ์๋ ์ธ๋ถ ์์คํ ๊ณผ ์ฑํฌํ๋ ๋ถ์ ํจ๊ณผ์ด๋ฏ๋ก useEffect ๋ด๋ถ์์ ์กฐ์ํ๋๋ฐ useEventListener์ ์ฅ์ ์ useEffect๋ฅผ ์๋ตํ๊ณ ๋ธ๋ผ์ฐ์ ์คํฌ๋กค, ๋ฆฌ์ฌ์ด์ฆ ์ด๋ฒคํธ์ ๊ฐ์ด window ๊ฐ์ฒด์ ์ ๊ทผํด ๋ธ๋ผ์ฐ์ ์์ฒด UI๋ฅผ ์กฐ์ํ ๋ ์ ์ฉํ ๊ฒ ๊ฐ๋ค. ํน์ํ๊ฒ ์ธ๋ถ์ ๋ฌผ๋ ค์๋ ์ฝ๋๊ฐ ๋ง์ ๊ฒฝ์ฐ ํด๋น ํ ์ ์ฐ๋ฉด ์ ์ฉํ๋ค๊ณ ํ๋ค.
useLocalStorage
์น ์คํ ๋ฆฌ์ง, localStorage๋ฅผ ํตํด ๊ฐ์ฒด๋ฅผ JSON์ผ๋ก ์์ํ(์ธ๋ถ์ ๋ฐ์ดํฐ ์ ์ฅ์ด ์ง์๋๋) ํค๋น ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ฉด ํ์ ์ ๋ฉฐ์น ๊ฐ ์๋ณด๊ธฐ, ํ ๋ง ์์ ๋ณ๊ฒฝํ๊ธฐ ๋ฑ์ด ๊ฐ๋ฅ
useDarkMode
useDarkMode ๋ด๋ถ์ ์ผ๋ก useLocalStorage ํ ์ ์ฌ์ฉํ๊ณ ์์(๋ธ๋ผ์ฐ์ ๊ฐ ์ข ๋ฃ ํ ์ฌ์คํ ๋์ ๋ ํ ๋ง๋ ์ง์๋์ด์ผ ํจ)
์ข์ ๊ธฐ๋ฅ๋ค์ด ๋ง์ด ์๋ ๊ฒ ๊ฐ์๋ฐ, ๊ฐ์ธ์ ์ผ๋ก๋ ๊ฐ์ ธ๋ค ์ฐ๊ธฐ๋ง ํ๋ฉด ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ฌด ์์กดํ๊ฒ ๋๋ ์ง์ ๊ตฌํ์ด ๊ฐ๋ฅํ ๋ถ๋ถ์ ์ต๋ํ ๊ตฌํํ ์ ์๋๋ก ํ๋ค.
swr
react-query
React Query๋ React ์ ํ๋ฆฌ์ผ์ด์ ์ ๋น๋๊ธฐ ๋ฐ์ดํฐ๋ฅผ cachingํ์ฌ ํ์ํ ๋ ๋ค์ ๊ฐ์ ธ์ฌ ์ ์๋ค.
์์ฒญ ๋ฐ์ดํฐ๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์บ์ฑํ์ฌ ๋์ผํ ๋ฐ์ดํฐ์ ๋ํ ๋ฐ๋ณต์ ์ธ ์์ฒญ์ ์บ์์์ ์ ๊ณตํจ (๋คํธ์ํฌ ๋น์ฉ ์ ์ฝ)
๋ฐ์ดํฐ ์์ฒญ ์คํจ์ ์๋ ์ฌ์๋
์์ ์ฝ๋
์ฒซ๋ฒ์งธ ์ปดํฌ๋ํธ๊ฐ ์์ฒญ ๋ฐ์ดํฐ๋ฅผ queryKey์ ์ด๋ฆ ์๋์ ์์ฒญ ๋ฐ์ดํฐ๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์บ์ฑํ๊ธฐ ๋๋ฌธ์ ๋๋ฒ์งธ ์ปดํฌ๋ํธ๊ฐ ๋๊ฐ์ queryKey๋ก ๋คํธ์ํฌ ํต์ ์๋ ์, ๋์ผํ ๋ฐ์ดํฐ์ ๋ํ ๋ฐ๋ณต์ ์ธ ์์ฒญ์ด๋ฏ๋ก ํด๋น ๋ฐ์ดํฐ๋ฅผ ์บ์์์ ์ ๊ณตํ์ฌ ๋ถํ์ํ ๋คํธ์ํฌ ์์ฒญ์ ์ค์ธ๋ค. ์ฆ, A๋ผ๋ key๋ฅผ ์ฌ์ฉํ๋ ๋ชจ๋ ์์ฒญ์ ๋ํด์ ๋์ผํ ์บ์๋ฅผ ์ฌ์ฉํ๋ค.
Last updated