useEffect
-
- [React.js] useLayoutEffect ํuseLayoutEffect ํ ๋ค์ด๊ฐ๋ฉฐ๋ฆฌ์กํธ(React.js)์ @useLayoutEffect@ ํ ์ ๋ํด ๊ฐ๋จํ ์ ๋ฆฌํด๋ณธ๋ค. useLayoutEffect ํ ๊ฐ๋ ์ปดํฌ๋ํธ๊ฐ ๋ ๋๋ง๋๊ธฐ ์ง์ , ์ฆ ๋ธ๋ผ์ฐ์ ๊ฐ ํ๋ฉด์ ๊ทธ๋ฆฌ๊ธฐ ์ ์ ์คํ๋๋ ํ ํ๋ฉด์ ๋ณํ๊ฐ ๋ํ๋๊ธฐ ์ ์ ์ด๋ ํ ์ฒ๋ฆฌ๋ฅผ ํ๊ณ ์ถ์ ๋ ์ฌ์ฉํ๋ค. ์ฌ์ฉ ๋ฐฉ๋ฒimport { useLayoutEffect } from 'react';useLayoutEffect(() => { // ๋ ์ด์์ ๊ด๋ จ ๋ณ๊ฒฝ, ๋๊ธฐ์ DOM ์กฐ์ ๋ฑ์ ์ฌ์ฉํ๋ค.}, [dependencies]); useEffect ํ ๊ณผ ๋น๊ตํ๊ธฐํญ๋ชฉuseEffect ํ useLayoutEffect ํ ์คํ ์์ ์ปดํฌ๋ํธ ๋ ๋๋ง ํ, ๋ธ๋ผ์ฐ์ ๊ฐ ํ๋ฉด์ ๊ทธ๋ฆฐ ๋ค์ปดํฌ๋ํธ ๋ ๋๋ง ์งํ, ๋ธ๋ผ์ฐ์ ๊ฐ ํ๋ฉด์ ๊ทธ๋ฆฌ๊ธฐ ..
2025.05.10 -
- [React.js] useEffect์ useCallbackuseEffect์ useCallback๋ค์ด๊ฐ๋ฉฐ๋ฆฌ์กํธ์์ ์ฌ์ฉ๋๋ @useCallback@๊ณผ @useEffect@์ ๋ํด ์์๋ณด์. @useCallback@๋ฆฌ์กํธ์์ ํจ์๋ฅผ ๋ฉ๋ชจ์ด์ ์ด์ (Memoization)ํ๋ ๋ฐ ์ฌ์ฉ๋๋ค.๋ถํ์ํ ํจ์์ ์ฌ์์ฑ์ ๋ฐฉ์งํ๊ณ , ํจ์๊ฐ ์์กดํ๋ ๊ฐ์ด ๋ณ๊ฒฝ๋ ๋๋ง ์๋ก์ด ํจ์๋ฅผ ์์ฑํ๋๋ก ํ ์ ์๋ค. ์์ ์ฝ๋์๋์ ์ฝ๋์์ @handleClick@ ํจ์๋ @count@ ๋ณ์๊ฐ ๋ณ๊ฒฝ๋ ๋๋ง ์ฌ์์ฑ ๋๋ค.๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ @handleClick@ ํจ์๋ ์ฌ์์ฑ๋์ง ์์ผ๋ฉฐ, ๊ฐ์ ํจ์๋ฅผ ๊ณ์ ์ฌ์ฉํ๊ฒ ๋๋ค.์ด๋ ๊ฒ ํ ๊ฒฝ์ฐ ํจ์์ ์ฌ์์ฑ์ ์ต์ํํ์ฌ ์ฑ๋ฅ ์ต์ ํ๋ฅผ ํ๋๋ฐ ๋์์ ์ค ์ ์๋ค.import React, { useCallback, useState } from 'rea..
2024.06.24 -
- [React.js] ์ค์๊ฐ์ผ๋ก ํน์ ์์์ ๊ธธ์ด๊ฐ ๊ฐ์ ธ์ค๊ธฐ์ค์๊ฐ์ผ๋ก ํน์ ์์์ ๊ธธ์ด๊ฐ ๊ฐ์ ธ์ค๊ธฐ๋ค์ด๊ฐ๋ฉฐ๋ฆฌ์กํธ์ ์ ์ค์๊ฐ์ผ๋ก ํน์ ์์์ ๊ธธ์ด๊ฐ์ ๊ฐ์ ธ์ค๋ ๋ฐฉ๋ฒ์ ์์๋ณด์. ๋ฐฉ๋ฒ์ฐ์ @useRef@๋ฅผ ์ด์ฉํ์ฌ ์ค์๊ฐ์ผ๋ก ๊ธธ์ด๊ฐ์ ๊ฐ์ ธ์ฌ ์์๋ฅผ ์ง์ ํด์ค๋ค.import {useRef} from 'react';// ...const horiRef = useRef(null);// ...return ( {/* ... */} ); ๋ค์๊ณผ ๊ฐ์ด @useEffect@์ @ResizeObserver@๋ฅผ ์ด์ฉํ์ฌ ํด๋น ์์์ ์ฌ์ด์ฆ๊ฐ์ ์ค์๊ฐ์ผ๋ก ๊ฐ์ ธ์ฌ ์ ์๋ค.import { useEffect } from 'react';useEffect(() => { const resizeObserver = new ResizeObserver((entries) => ..
2024.03.26