๐ Redux ์ํ ๊ด๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์ตํ๋ ๋ ์ด๋ค. ์ด์ ๋ prop๋ฅผ ๋จ๋ฐํ์ฌ prop drilling์ด ์๊ฒผ๋ค๋ ๊ฒ์ ์ ์ ์์๋ค. ํ์ง๋ง React-Redux๋ฅผ ์ฌ์ฉํ๊ฒ ๋ ๊ฒฝ์ฐ store(์ํ ์ ์ฅ์)์์ ์ํ๋ฅผ ๊ด๋ฆฌ(๊ฐฑ์ , ์์ , ์ญ์ ๋ฑ)๋ฅผ ํ๊ณ ์๊ธฐ๋๋ฌธ์ ์์ ๋ฌธ์ ์ ์ ํด๊ฒฐํ ์ ์๋ค๋ ๊ฒ์ ์์๊ณ , Redux๋ฅผ ์ค์ ๋ก ์ฌ์ฉํด๋ณด๋ฉฐ ์์ ์ตํ ์ ์๋ ์๊ฐ์ด ๋์๋ค!!
๐ ์ค๋ ํ์ตํ ๋ด์ฉ
Redux
- ์ํ ๊ด๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ (React ์์ด๋ ์ฌ์ฉ ๊ฐ๋ฅ)
- ์ปดํฌ๋ํธ์ ์ํ๋ฅผ ๋ถ๋ฆฌํ๋ ํจํด
- ์ํ ๋ณ๊ฒฝ ๋ก์ง์ ์ปดํฌ๋ํธ๋ก๋ถํฐ ๋ถ๋ฆฌํ์ฌ ๋จ์ํ ํจ์ ์ปดํฌ๋ํธ๋ฅผ ๋ง๋ค ์ ์๊ฒ ํด์ค๋ค.
Redux๋ฅผ ์ฌ์ฉํ๋ ์ด์
- ๋ชจ๋ ์ปดํฌ๋ํธ์์ prop ์์ด state๋ฅผ ์ง์ ๊บผ๋ผ ์ ์๋ค.
- ์์ ์ปดํฌ๋ํธ์์ ํ์ ์ปดํฌ๋ํธ๋ก state๋ฅผ ๋๊ฒจ์ผ ํ๋๋ฐ ํ์ ์ปดํฌ๋ํธ๊ฐ ๋๋ฌด ๋ง์ ๊ฒฝ์ฐ ์ฌ์ฉํ๋ค.
- state๋ฅผ ๋ณด๊ดํ๋ ํ์ผ์ ํ๋ ๋ง๋ค์ด์ state๋ฅผ ๋ณด๊ดํ์ฌ ๋ชจ๋ ์ปดํฌ๋ํธ๋ค์ด props ์์ด ๊บผ๋ด์ ์ฌ์ฉํ ์ ์๋ค.
- ์ํ(state)๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ฉ์ดํ๋ค.
- ๋ชจ๋ ์ปดํฌ๋ํธ์์ state๋ฅผ ๋ณ๊ฒฝํ๊ธฐ ์์ํ ๊ฒฝ์ฐ Redux๋ฅผ ์ฌ์ฉํ์ง ์๋๋ค๋ฉด ์๋ฌ๋ฅผ ์ฐพ๊ธฐ ํ๋ค์ง๋ง state ์ ์ฅ์์์ ๋ฐ๋ก ์ฐพ์ ์ ์๋ค.
Redux์ ์ํ ๊ด๋ฆฌ ๊ตฌ์กฐ: (Action → Dispatch → Reducer → Store)
- ์ํ๊ฐ ๋ณ๊ฒฝ๋์ด์ผ ํ๋ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ๋ฉด ๋ณ๊ฒฝ๋ ์ํ์ ๋ํ ์ ๋ณด๊ฐ ๋ด๊ธด Action ๊ฐ์ฒด ์์ฑ
- Action๊ฐ์ฒด: Dispatch ํจ์์ ์ธ์๋ก ์ ๋ฌ
- ์ด๋ค ์ก์ ์ ์ทจํ ๊ฒ์ธ์ง ์ ์ํด ๋์ ๊ฐ์ฒด
- type์ Action ๊ฐ์ฒด๊ฐ ์ด๋ค ๋์์ ํ๋์ง ๋ช ์ํด์ฃผ๋ ์ญํ ์ ํ๊ธฐ ๋๋ฌธ์ ํ์๋ก ์ง์ ํด์ผ ํ๋ค.(๋๋ฌธ์, Snake Case๋ก ์์ฑ)
- payload* : ์ก์ ์ ํ์ํ ์ถ๊ฐ ๋ฐ์ดํฐ
- Dispatch ํจ์: Action ๊ฐ์ฒด๋ฅผ Reducer ํจ์๋ก ์ ๋ฌ
- Reducer๋ก Action์ ์ ๋ฌํด์ฃผ๋ ํจ์
- Reducer ํจ์: Action ๊ฐ์ฒด์ ๊ฐ์ ํ์ธํ๊ณ , ๊ทธ ๊ฐ์ ๋ฐ๋ผ ์ ์ญ ์ํ ์ ์ฅ์ Store์ ์ํ๋ฅผ ๋ณ๊ฒฝ
- Dispatch์๊ฒ์ ์ ๋ฌ๋ฐ์ Action ๊ฐ์ฒด์ type์ ๋ฐ๋ผ ์ํ๋ฅผ ๋ณ๊ฒฝํ๋ ํจ์ (์์ ํจ์)
- ์ํ๊ฐ ๋ณ๊ฒฝ๋๋ฉด, React๋ ํ๋ฉด์ ์ฌ ๋ ๋๋ง
- Store: ์ํ๊ฐ ๊ด๋ฆฌ๋๋ ์ค์ง ํ๋๋ฟ์ธ ์ ์ฅ์์ ์ญํ
Redux์ ์ธ ๊ฐ์ง ์์น
- Single source of truth
- ๋์ผํ ๋ฐ์ดํฐ๋ ํญ์ ๊ฐ์ ๊ณณ์์ ๊ฐ์ง๊ณ ์์ผํ๋ค.
- State is read-only
- ์ํ๋ ์ฝ๊ธฐ ์ ์ฉ์ด๋ผ๋ ๋ป์ผ๋ก, Redux์ ์ํ๋ฅผ ์ง์ ๋ณ๊ฒฝํ ์ ์๊ณ , Action ๊ฐ์ฒด๊ฐ ์์ด์ผ๋ง ์ํ๋ฅผ ๋ณ๊ฒฝํ ์ ์๋ค.
- Changes are made with pure functions
- ๋ณ๊ฒฝ์ ์์ํจ์๋ก๋ง ๊ฐ๋ฅํ๋ค.
- ์ํ๊ฐ ์๋ฑํ ๊ฐ์ผ๋ก ๋ณ๊ฒฝ๋๋ ์ผ์ด ์๋๋ก ์์ํจ์๋ก ์์ฑ๋์ด์ผ ํ๋ Reducer์ ์ฐ๊ฒฐ๋๋ ์์น.
๐ ์ถ๊ฐ๋ก ๊ณต๋ถํ ๋ด์ฉ
[udemy] React ์๋ฒฝ ๊ฐ์ด๋ ๊ฐ์ ๋ณด๊ธฐ (๋งค์ผ ์กฐ๊ธ์ฉ ์ด๋ผ๋ ๊พธ์คํ ๋ฃ๊ธฐ)
Redux ๋ณต์ตํด๋ณด๊ธฐ
๐ ์ค์ํ ๋ด์ฉ
- Redux์ ๊ตฌ์กฐ: Action -> Dispatch -> Reducer -> Store
- Redux๋ฅผ ์ฌ์ฉํ๋ ์ด์
- Redux์ ์ธ ๊ฐ์ง ์์น
'Daily > Today I Learned' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
22.07.08_TIL (0) | 2022.07.08 |
---|---|
22.07.07_TIL (0) | 2022.07.07 |
22.07.05_TIL (0) | 2022.07.05 |
22.07.04_TIL (0) | 2022.07.04 |
22.07.01_TIL (0) | 2022.07.01 |