Redux
Achievement Goals
์ํ ๊ด๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์ ํ์ํ์ง ์ดํดํ ์ ์๋ค.
-๋ง์ ์ปดํฌ๋ํธ ์ฌ์ด์์ ํ๋กญ์ค๋ฅผ ๋ด๋ ค์ฃผ๊ธฐ ๊ฐํธํ๋ค.
-์คํ ์ดํธ๋ฅผ ํ๊ตฐ๋ฐ์์ ๊ด๋ฆฌํ๋ ์๋ฌ ํธ๋ค๋ง์ด ์ฝ๋ค.
Redux (ํน์ Flux Pattern)์์ ์ฌ์ฉํ๋ Action, Reducer ๊ทธ๋ฆฌ๊ณ Store์ ์๋ฏธ์ ํน์ง์ ์ดํดํ ์ ์๋ค.
-Action: ์ด๋ค์ก์ ์ ์ทจํ ์ง ์ ์ํด๋์ ๊ฐ์ฒด
-Reducer: ํ์ฌ์ state์ Action์ ์ด์ฉํด์ ์๋ก์ด state๋ฅผ ๋ง๋ค์ด ๋ด๋ pure function
-Store: state๊ฐ ๊ด๋ฆฌ๋๋ ์ค์ง ํ๋๋ฟ์ธ ์ ์ฅ์
Redux์ 3๊ฐ์ง ์์น์ด ๋ฌด์์ด๋ฉฐ, ์ฃผ์ ๊ฐ๋ ๊ณผ ์ด๋ป๊ฒ ์ฐ๊ฒฐ๋๋์ง ์ดํดํ ์ ์๋ค.
-๋์ผํ ๋ฐ์ดํฐ๋ ๊ฐ์๊ณณ์์ ๊ฐ์ ธ์จ๋ค.
-์ํ๋ ์ฝ๊ธฐ ์ ์ฉ์ผ๋ก ๋๊ณ , action๊ฐ์ฒด๋ก๋ง ๋ณ๊ฒฝํ๋ค.
-reducer ๋ณ๊ฒฝ์ ์์ํจ์๋ก๋ง ํ๋ค.
Presentational ์ปดํฌ๋ํธ์ Container ์ปดํฌ๋ํธ์ ๊ฐ๋ ์ ์ดํดํ ์ ์๋ค.
-Presentation component: ์ค์ง ๋ทฐ๋ง์ ๋ด๋นํ๋ ์ปดํฌ๋ํธ(์คํ์ผ์ ๊ฐ์ง๊ณ ์๊ณ , ์คํ ์ด ์ ๊ทผ ๊ถํ์ด ์๊ณ , props๋ก๋ง ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์จ๋ค.state๋ฅผ ๊ฐ์ง๊ณ ์๋ ๊ฒฝ์ฐ์ ๋ณดํต ui์ ๊ด๋ จ๋ ๊ฒ์ด์ด์ผํ๋ค.)
-Container component: ์คํ์ผ์ด ์์ผ๋ฉฐ, ํ๋ ์ ํ ์ด์ ์ปดํฌ๋ํธ์ ์ปจํ ์ด๋ ์ปดํฌ๋ํธ๋ฅผ ๊ด๋ฆฌํ๋๊ฒ์ ๋ด๋นํ๋ค.(๋ฆฌ๋์ค์ ์ง์ ์ ๊ทผํ๋ ์ปดํฌ๋ํธ)
์ด๊ตฌ์กฐ๋ก ์์ฑํ๊ฒ ๋๋ฉด ํ๋ก์ ํธ๋ฅผ ์ดํดํ๊ธฐ ์ฌ์์ง๊ณ , ์ปดํฌ๋ํธ์ ์ฌ์ฌ์ฉ๋ฅ ๋ ์ฌ๋ผ๊ฐ๋ค.
Redux hooks(useSelector, useDispatch)๋ฅผ ์ฌ์ฉํด store ๋ฅผ ์ ๋ฐ์ดํธํ ์ ์๋ค.
useSelector()๋ ์ปดํฌ๋ํธ์ state๋ฅผ ์ฐ๊ฒฐํ๋ ์ญํ ์ ํฉ๋๋ค. ์ปดํฌ๋ํธ์์ useSelector ๋ฉ์๋๋ฅผ ํตํด store์ state์ ์ ๊ทผ
useDispatch()๋ Action ๊ฐ์ฒด๋ฅผ Reducer๋ก ์ ๋ฌํด ์ฃผ๋ ๋ฉ์๋.Action์ ํด๋ฆญ ๋ฑ์ ์ด๋ฒคํธ๊ฐ ์ผ์ด๋๋ ์ปดํฌ๋ํธ์ ์๋ค.
-์ฝ์ง ์์ง๋ง ๊ฐ๋ฅํ๋ค... ใ
-๋ฒํผ์ด ํด๋ฆญ๋๋ฉด,
1.์ด๋ฒคํธ ํธ๋ค๋ฌ๊ฐ ๋ถ๋ ค์ง๋ฉด Dispatch์ action๊ฐ์ฒด๊ฐ ์ ๋ฌ๋๊ณ ,
2. ์ก์ ์ reducer๋ฅผ ํธ์ถํด์ reducer๋ ์ก์ ์ ํ์ ๊ฐ๊ณผ ๊ฐ์ ๋ถ๋ถ์ ์ฐพ์ ์คํ(์์ํจ์๋ก)ํ์ฌ store์ state๋ฅผ ๊ฐฑ์ ํ๋ค.
๋๋์ .
props ๊ตฌ๋ฉ์ด์์ ๋๊ฐ ์๋ด๋ฐ๊ธธ๋ ๋ดค๋๋ ๋ฆฌ๋์ค์๋ค.
ํ์ง๋ง ํธ๋ฝํธ๋ฝ ํ์ง์์ ์ฐฉํ์น๊ตฌ.
๋๊ธ