๐props-drilling
๋ฐ์ดํฐ๊ฐ ์์ ์ปดํฌ๋ํธ์์ ํ์ ์ปดํฌ๋ํธ๋ก ์ ๋ฌ๋๋ ๊ณผ์ ์์ ์ค๊ฐ ์ปดํฌ๋ํธ๋ค์ ๊ฑฐ์น๋ฉด์ ๋ฐ์ํ๋ ๋ฌธ์ ๋ก, ์ค๊ฐ ์ปดํฌ๋ํธ๊ฐ ๋ง์์ง๋ฉด ์ฝ๋๊ฐ ๋ณต์กํด์ง ์ ์๋ค.
props-drilling ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋ค์๊ณผ ๊ฐ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ ์ฌ์ฉํ ์ ์๋ค.
โ๏ธReact Context API
react์์๋ React Context API๋ผ๋ ์์ฒด์ ์ธ ์ ์ญ ์ํ๊ด๋ฆฌ API๋ฅผ ์ ๊ณตํด์ค๋ค. ๋จ, React Context API๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฆฌ์กํธ ์ฑ ์ต์๋จ์ Provider๊ฐ ๋ฐฐ์น๋๋ค. Provider๋ context๋ฅผ ๊ตฌ๋ ํ๋ ์ปดํฌ๋ํธ๋ค์๊ฒ context์ ๋ณํ๋ฅผ ์๋ฆฌ๋ ์ญํ ์ ํ๋ค. context๋ฅผ ๊ตฌ๋ ํ๋ ์ปดํฌ๋ํธ๋ค์ Provider์ value prop์ด ๋ฐ๋ ๋๋ง๋ค ๋ค์ ๋ ๋๋ง๋๋ค. ๋ฐ๋ผ์ ์ํฉ์ ๋ฐ๋ผ ์ฑ๋ฅ์ ์ฌ๊ฐํ ์ ์ํฅ์ ๋ฏธ์น ์ ์๋ค.
โ๏ธRedux
fluxํจํด์ ์ฌ์ฉํ์ฌ, action์ด ๋ฐ์ํ๋ฉด dispatcher์ ์ํด store์ ๋ณ๊ฒฝ๋ ์ฌํญ์ด ์ ์ฅ๋๊ณ , ๊ทธ ์ํ์ ์ํด view๊ฐ ๋ณ๊ฒฝ๋๋, ๋ฐ์ดํฐ๊ฐ ํ ๋ฐฉํฅ์ผ๋ก ํ๋ฅด๋ ๊ตฌ์กฐ๋ฅผ ๊ฐ๋๋ค. ๋์ฒด๋ก redux toolkit์ ์ค์นํด์ ๊ฐ์ด ์ฌ์ฉํ๊ณ , redux saga๋ฅผ ์ด์ฉํด ๋น๋๊ธฐ ์ฒ๋ฆฌ๋ฅผ ํ๋ค.
*Redux 3๋ ์์น
1. ๋จ์ผ ๋ฐ์ดํฐ ์์ค
์ ํ๋ฆฌ์ผ์ด์ ์ ์ ์ฒด ์ํ๋ ์ ์ฒด ๊ฐ์ฒด ํธ๋ฆฌ ์์ ์ ์ฅ๋๋ค. ์ด๋ฅผ ํตํด ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํ๋ฅผ ํ ๊ณณ์์ ์ฝ๊ฒ ๊ด๋ฆฌํ ์ ์๋ค.
2. ์ํ๋ ์ฝ๊ธฐ ์ ์ฉ
์ํ๋ ์ง์ ๋ณ๊ฒฝํ ์ ์์ผ๋ฉฐ, ๋์ ์ก์ ์ด๋ผ๋ ๊ฐ์ฒด๋ฅผ ํตํด ์ํ ๋ณ๊ฒฝ์ ์์ฒญํด์ผ ํ๋ค.
3. ๋ณํ๋ ์์ ํจ์๋ก ๊ตฌํ
์ํ ๋ณ๊ฒฝ ๋ก์ง์ ์์ํจ์์ธ ๋ฆฌ๋์(Reducer)์ ์ํด ๊ตฌํ๋๋ค.
โ๏ธRecoil
Recoil์ react ์ ์ฉ ์ํ๊ด๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก, ์ปดํฌ๋ํธ๋ค์ด ๊ตฌ๋ ํ ์ ์๋ ๋จ์์ธ atom์ ๊ฐ์ง๋ค. atom์ ๋ณํ๊ฐ ์์ผ๋ฉด ๊ตฌ๋ ํ๋ ๋ชจ๋ ์ปดํฌ๋ํธ๋ค์ด ์ฌ๋ ๋๋ง ๋๋ค.
action → dispatch → reducer → view ์ ํ๋ฆ์ ๊ฐ์ง๋ redux์ ๋ฌ๋ฆฌ
atom → selector → view ์ data-flow๋ฅผ ๊ฐ์ง๋ค.
๋ํ recoil์ ๋น๋๊ธฐ ๊ธฐ๋ฐ์ผ๋ก ์์ฑ๋์ด ๋์์ฑ ๋ชจ๋๋ ์ง์ํ๋ค.
npm trends๋ฅผ ํ์ธํด๋ณด๋ ๊ฐ์ฅ ๋๋ฆฌ ์ฌ์ฉ๋๋ ์ํ ๊ด๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ redux์์ ํ์ธํ ์ ์๋ค.(๋๋ recoil๋ฐ์ ์ฌ์ฉ์ํด๋ดค์ง๋ง..)
'๐CS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Access Token๊ณผ Refresh Token์ ์ ์ฅ ์์น (1) | 2024.10.28 |
---|---|
์ด์์ฒด์ (0) | 2024.07.10 |
React ์ปดํฌ๋ํธ์ ๋ผ์ดํ์ฌ์ดํด (0) | 2024.04.19 |
www.naver.com์ ์ฃผ์์ฐฝ์ ์ ๋ ฅํ๋ฉด ์ด๋ป๊ฒ ๋ ๊น์? (0) | 2024.04.14 |
AJAX: SSR๊ณผ CSR (2) | 2024.03.17 |