์ ์ฒด ๊ธ92 useReducer useReducer ์ํ ๊ด๋ฆฌ hook์ค ํ๋(useState์ฒ๋ผ) ์ปดํฌ๋ํธ์ ์ํ ์ ๋ฐ์ดํธ ๋ก์ง์ ์ปดํฌ๋ํธ์์ ๋ถ๋ฆฌ ๊ฐ๋ฅ → ์ํ ์ ๋ฐ์ดํธ ๋ก์ง์ ์ปดํฌ๋ํธ ๋ฐ๊นฅ์ ์์ฑ ๊ฐ๋ฅ, ์ฌ์ง์ด ๋ค๋ฅธ ํ์ผ์ ์์ฑ ํ ๋ถ๋ฌ์์ ์ฌ์ฉ ๊ฐ๋ฅ reducer: ํ์ฌ ์ํ์ ์ก์ ๊ฐ์ฒด๋ฅผ ํ๋ผ๋ฏธํฐ๋ก ๋ฐ์์์ ์๋ก์ด ์ํ๋ฅผ ๋ฐํํด์ฃผ๋ ํจ์ function reducer(state, action) { // ์๋ก์ด ์ํ๋ฅผ ๋ง๋๋ ๋ก์ง // const nextState = ... return nextState; } ๋ฐํํ๋ ์ํ๋ ๊ณง ์ปดํฌ๋ํธ๊ฐ ์ง๋ ์๋ก์ด ์ํ๊ฐ ๋จ action์ ์ ๋ฐ์ดํธ๋ฅผ ์ํ ์ ๋ณด๋ฅผ ์ง๋๊ณ ์์(๊ฐ์ฒด์ ํํ๋ ์์ ) → type ๊ฐ์ ์ง๋ ๊ฐ์ฒด ํํ๋ก ์ฌ์ฉ //์นด์ดํฐ์ 1์ ๋ํ๋ ์ก์ { type: 'INCRE.. 2022. 11. 24. useCallback, React.memo useCallback ํจ์๋ฅผ memoizationํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ hookํจ์ → useMemo์ ๋น์ทํ Hook ๐ก useMemo๋ ํน์ ๊ฒฐ๊ณผ๊ฐ์ ์ฌ์ฌ์ฉ ํ ๋ ์ฌ์ฉ useCallback์ ํน์ ํจ์๋ฅผ ์๋ก ๋ง๋ค์ง ์๊ณ ์ฌ์ฌ์ฉํ๊ณ ์ถ์ ๋ ์ฌ์ฉ ์ปดํฌ๋ํธ์์ props๊ฐ ๋ฐ๋์ง ์์ผ๋ฉด Virtual DOM์ ์๋ก ๋ ๋๋งํ๋ ๊ฒ๋ ํ์ง ์๊ณ , ์ปดํฌ๋ํธ์ ๊ฒฐ๊ณผ๋ฌผ์ ์ฌ์ฌ์ฉํ๋ ์ต์ ํ ์์ → ํจ์ ์ฌ์ฌ์ฉ ๊ธฐ๋ณธ ๊ตฌ์กฐ const memoizedCallback = useCallback(ํจ์, ๋ฐฐ์ด); ์ฒซ ๋ฒ์งธ ํ๋ผ๋ฏธํฐ: ์ธ์๋ก ๋์ด์จ ํจ์ ๋ ๋ฒ์งธ ํ๋ผ๋ฏธํฐ: ๋์ด์จ ๋ฐฐ์ด ๋ด์ ๊ฐ์ด ๋ณ๊ฒฝ๋ ๋๊น์ง ์ ์ฅํด๋๊ณ ์ฌ์ฌ์ฉํ ์ ์๊ฒ ํด์ค ํด๋น ์ปดํฌ๋ํธ๊ฐ ๋ ๋๋ง๋์ด๋ ๊ทธ ํจ์๊ฐ ์์กดํ๋ ๊ฐ๋ค์ด ๋ฐ๋์ง ์๋ ํ ๊ธฐ์กด ํจ์ ๊ณ.. 2022. 11. 24. useEffect์ useMemo useEffect ํจ์ ๋ฆฌ์กํธ ์ปดํฌ๋ํธ๊ฐ ๋ ๋๋ง ๋ ๋ ๋ง๋ค ํน์ ์์ ์ ์คํํ ์ ์๋๋ก ํ๋ Hook component๊ฐ mount ๋์์ ๋[์ฒ์ ๋ํ๋ฌ์ ๋], component๊ฐ unmount๋์์ ๋[์ฌ๋ผ์ง ๋], component๊ฐ update๋์์ ๋[ํน์ props๊ฐ ๋ฐ๋ ๋] ๊ธฐ๋ณธ ํํ useEffect(function, deps) function: ์ํํ๊ณ ์ ํ๋ ์์ [ํจ์] deps: ๋ฐฐ์ด ํํ, ๋ฐฐ์ด ์์๋ ๊ฒ์ฌํ๊ณ ์ ํ๋ ํน์ ๊ฐ ํน์ ๋น ๋ฐฐ์ด[์์กด๋๋ ๊ฐ๋ค] cleanup ํจ์: ํจ์ ๋ฐํ, deps๊ฐ ๋น์ด ์๋ ๊ฒฝ์ฐ์ ์ปดํฌ๋ํธ๊ฐ ์ฌ๋ผ์ง ๋ ํธ์ถ๋จ ์์กด๋๋ ๊ฐ์ ๋ฐฐ์ด์ด ๋น์ด ์์ผ๋ฉด, ์ปดํฌ๋ํธ๊ฐ ์ฒ์ ์์ฑ๋ ๋์๋ง ์์ ์ด ์คํ๋๊ณ , ์ปดํฌ๋ํธ๊ฐ ํ๋ฉด์์ ์ฌ๋ผ์ง ๋๋ returnํด์.. 2022. 11. 23. ์ปดํฌ๋ํธ ๋ ๋๋ง ๋ ๋๋ง์ด๋? ์ปดํฌ๋ํธ๊ฐ ํ์ฌ props์ state์ ์ํ์ ๊ธฐ์ดํ์ฌ UI๋ฅผ ์ด๋ป๊ฒ ๊ตฌ์ฑํ ์ง ์ปดํฌ๋ํธ์๊ฒ ์์ฒญํ๋ ์์ ์ ์๋ฏธ DOM ์ ๋ฐ์ดํธ ๊ณผ์ 1. render ๋จ๊ณ: React.createElement๋ก ์์ฑ 2. reconciliation ๋จ๊ณ: ์ด์ elements์ ์๋ก ์์ฑ๋ elements ๋น๊ต 3. commit ๋จ๊ณ: DOM ์ ๋ฐ์ดํธ re-render๋๋ ์ํฉ 1. props๊ฐ ๋ณ๊ฒฝ๋์์ ๋ 2. state๊ฐ ๋ณ๊ฒฝ๋์์ ๋ 3. Context value๊ฐ ๋ณ๊ฒฝ๋์์ ๋ 4. ๋ถ๋ชจ ์ปดํฌ๋ํธ๊ฐ re-render๋์์ ๋ → ์ต์ ํ ๋ฐฉ๋ฒ: render๋จ๊ณ์ ๋ค์ด๊ฐ๋(re-rendering) ํ์ ์ค์ด๊ธฐ [์ฐธ๊ณ ์ฌ์ดํธ] https://yujonglee.com/reactrendering.html .. 2022. 11. 23. ์ด์ 1 ยทยทยท 15 16 17 18 19 20 21 ยทยทยท 23 ๋ค์