๐ ์ํ๊ด๋ฆฌ๋ฅผ ์ ํ ๊น์?
1๏ธโฃ ์ปดํฌ๋ํธ ๊ฐ ๋ฐ์ดํฐ ๊ณต์ :
props ์ ๋ฌ๋ง์ผ๋ก๋ ๋ณต์กํ ์ปดํฌ๋ํธ ๊ฐ ๋ฐ์ดํฐ ๊ณต์ ๋ฅผ ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌํ๊ธฐ ์ด๋ ต๊ธฐ ๋๋ฌธ์ ์ฌ๋ฌ ์ปดํฌ๋ํธ๊ฐ ๋์ผํ ๋ฐ์ดํฐ๋ฅผ ๊ณต์ ํด์ผ ํ ๋ ์ํ ๊ด๋ฆฌ๊ฐ ํ์ํฉ๋๋ค.
2๏ธโฃ UI ์ํ ๊ด๋ฆฌ:
์ฌ์ฉ์ ์ ๋ ฅ, API ํธ์ถ์ ๋ฐ๋ฅธ ๋ฐ์ดํฐ ๋ก๋ฉ, ์กฐ๊ฑด๋ถ ๋ ๋๋ง ๋ฑ UI ์ํ ๋ณ๊ฒฝ์ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํด์ผ ํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
3๏ธโฃ ์ฑ๋ฅ ์ต์ ํ:
๋ถํ์ํ ๋ ๋๋ง์ ๋ฐฉ์งํ๊ณ ์ฑ๋ฅ์ ์ต์ ํํ๊ธฐ ์ํด์ ์ํ๊ด๋ฆฌ๊ฐ ํ์ํฉ๋๋ค.
๐ ํ์ state ๊ด๋ฆฌ๋ ์ด๋ป๊ฒ ํ์๋์?
1๏ธโฃ ( ํจ์ ์ปดํฌ๋ํธ์์ ์ํ๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํด ) useState Hook ์ฌ์ฉ:
์ปดํฌ๋ํธ ๋ด๋ถ์์ ๋ก์ปฌ ์ํ๋ฅผ ๊ด๋ฆฌํฉ๋๋ค.
2๏ธโฃ ( ๋๊ท๋ชจ ์ ํ๋ฆฌ์ผ์ด์
์์ ์ํ ๊ด๋ฆฌ๋ฅผ ์ํด ) Redux ์ฌ์ฉ:
์ํ๋ฅผ ํ๋์ store์์ ๊ด๋ฆฌํ๊ณ , Action๊ณผ Reducer๋ฅผ ์ฌ์ฉํ์ฌ ์ํ๋ฅผ ์ ๋ฐ์ดํธํฉ๋๋ค.
3๏ธโฃ Redux Tookit ์ฌ์ฉ:
๋ณต์กํ ๋ฆฌ๋์ค ์ฝ๋๋ฅผ ๊ฐ์ํํ๊ณ ํจ์จ์ ์ผ๋ก ์ํ๋ฅผ ๊ด๋ฆฌํ ์ ์๋๋ก ๋์์ค๋๋ค.
๐ฅ ํต์ฌ ํค์๋ : ๋ฆฌ๋ ๋๋ง, ์ปดํฌ๋ํธ, ๋ก์ปฌ / ์ง์ญ ์ํ
์ํ ๊ด๋ฆฌ๋ ๋ถํ์ํ ๋ฆฌ๋ ๋๋ง์ ๋ฐฉ์งํ๊ณ ์ ์ง๋ณด์์ฑ์ ํฅ์์ํค๊ธฐ ์ํด ํ์ํฉ๋๋ค. ๋ฆฌ์กํธ๋ state์ ๋ณ๋์ด ์๊ธธ ๋์ ๋ฆฌ๋ ๋๋ง ๋์ด ํ์ด์ง์ ๋ณ๋์ ์ผ์ผํต๋๋ค. ๋ฆฌ์กํธ๋ ๋จ๋ฐฉํฅ ๋ฐ์ดํฐ ํ๋ฆ์ ๊ฐ๊ณ ์๊ธฐ ๋๋ฌธ์ ์ปดํฌ๋ํธ๊ฐ ๋ณต์กํด์ง๋ ๊ฒฝ์ฐ, ์์ ์ปดํฌ๋ํธ์์ ํ์ ์ปดํฌ๋ํธ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด์ผ ํ๋ ๊น์ด๊ฐ ๊น์ด์ง๋ prop drilling์ด ๋ฐ์ํฉ๋๋ค.
์ ํ๋ฆฌ์ผ์ด์ ์ ๊ท๋ชจ๊ฐ ์ปค์ง์๋ก ์ฌ๋ฌ ์ปดํฌ๋ํธ๊ฐ ์ํ๋ฅผ ๊ณต์ ํ๊ณ ์๋ก์ ์ํ์ ์์กดํ๊ธฐ ๋๋ฌธ์ ํจ์จ์ ์ธ ์ํ ๊ด๋ฆฌ๊ฐ ํ์์ ์ ๋๋ค. ์ด๋ฅผ ํตํด์ ์์์น ๋ชปํ ๋ฒ๊ทธ๋ฅผ ์ค์ด๊ณ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ณด๋ค ์์ธก ๊ฐ๋ฅํ๊ฒ ๋ง๋ค ์ ์์ต๋๋ค.
ํ์ state ๊ด๋ฆฌ๋ฅผ ์ํด redux๋ฅผ ์ฌ์ฉํ๊ฑฐ๋ ์๋ฒ ๋ฐ์ดํฐ ์ํ ๊ด๋ฆฌ๋ก react query, ํด๋ผ์ด์ธํธ์ธก ๋ฐ์ดํฐ ์ํ ๊ด๋ฆฌ๋ก recoil์ ์ฌ์ฉํ๊ณค ํฉ๋๋ค.
์ฒซ ๋ฒ์งธ๋ก react-query๋ ๋ฐ์ดํฐ ํ์น์ ๊ด๋ จ๋ ๋ก์ง์ ๊ฐ์ํํ๊ณ , ์บ์ฑ๊ณผ ๋ฆฌํจ์นญ์ ์๋์ผ๋ก ์ฒ๋ฆฌํ์ฌ ๋คํธ์ํฌ ์์ฒญ์ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
๋น๋๊ธฐ ๋ฐ์ดํฐ ์์ฒญ์ ์ฒ๋ฆฌํ ๋ ๋งค์ฐ ๊ฐํธํ๊ณ ์ ์ฉํด์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ๋ฆฌ์กํธ ์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฉํ ๋ ํด๋ผ์ด์ธํธ ์ชฝ ์ํ ๊ด๋ฆฌ๊ฐ ํ์ํ ๊ฒฝ์ฐ์ recoil์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
์ฌ์ฉ์ด ๊ฐํธํ๊ณ ๋ณต์กํ ์ปดํฌ๋ํธ ํธ๋ฆฌ์์ ์ํ๋ฅผ ๊ด๋ฆฌํ ๋ ์ ์ฉํด์ ์ฌ์ฉ ์ค์ ๋๋ค. ๋ฆฌ๋์ค๋ ์์ง ์ฌ์ฉ ๋น์จ์ด ๊ฐ์ฅ ๋์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ณ ๋ฏธ๋ค์จ์ด๋ฅผ ํ์ฉํ๋ฉด ๋น๋๊ธฐ ์์ ์ ์ฒ๋ฆฌํ๋๋ฐ์๋ ์์ํด์ ์ฌ์ฉ์ ํ๊ณค ํ๋๋ฐ, ์ํ ๊ด๋ฆฌ๋ฅผ ์ํด ๋ง์ ๋ณด์ผ๋ฌ ํ๋ ์ดํธ ์ฝ๋๊ฐ ํ์ํ๋ค๊ณ ๋๊ปด์ ธ ์ต๊ทผ์๋ ๋ฆฌ์กํธ ์ฟผ๋ฆฌ์ ๋ฆฌ์ฝ์ผ์ ๋ ๋ง์ด ์ฌ์ฉ ์ค์ ๋๋ค.
'๊ธฐ์ ๋ฉด์ ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
6_useEffect ์คํ ์์ (1) | 2024.02.07 |
---|---|
5_useRef ๋ ๋ฌด์์ธ๊ฐ? (0) | 2024.02.06 |
4_๊ฐ์ ๋(Virtual DOM & ์ค์ ๋(Real DOM) (0) | 2024.02.05 |
3_Redux : mobx : jotai : recoil (0) | 2024.02.03 |
2_Redux ๋ ๋ฌด์์ธ๊ฐ? ์ ์ฌ์ฉํ๋๊ฐ? (0) | 2024.02.02 |