Redux
Last updated
Last updated
๋ฆฌ๋์ค๋ ๋ฐ์ดํฐ๋ฅผ ์ค์์ store
์์ ๊ด๋ฆฌํ์ฌ ์ ์ญ ์ํ๋ฅผ ๊ด๋ฆฌ ํ ์ ์๊ฒ ๋์์ฃผ๋ ์๋ฐ์คํฌ๋ฆฝํธ์ ์ํ๊ด๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค ์ฌ์ฉํ๋ฉด์ ๋ฆฌ๋์ค๊ฐ ์ด๋ป๊ฒ ๋์ํ๋์ง ์์ง 100% ์ดํดํ์ง ๋ชปํ๊ฒ ๊ฐ์์ ์ด๋ฒ ๊ธฐํ์ ๊ณต๋ถํด๋ณด์
๋ฆฌ๋์ค์์ ์์์ผ ํ ํต์ฌ ํค์๋๋ store
,reducer
, action
, dispatch
์ด๋ค.
store
๋ ์ํ๋ฅผ ๊ด๋ฆฌํ๋ ๊ณณ์ด๋ค. ์ด๊ณณ์์ ์ ์ญ์ผ๋ก ์ฌ์ฉํ ์ํ๋ฅผ ๊ด๋ฆฌํ๋๋ฐ, ์ปดํฌ๋ํธ์์ ์ด๋ ํ ์ํ๋ฅผ ์กฐํํ๊ณ ์ถ๋ค๋ฉด useSelector
๋ฅผ ์ฌ์ฉํด store์ ์ ๊ทผํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ป๋๋ค. (์ ์ํ ์ ์ ํ๋์ ์ํ๋ ํ๋์ store๊ฐ ๊ด๋ฆฌํด์ผ ํ๋ค.)
**action
**์ ์ปดํฌ๋ํธ๊ฐ ์ํ๋ฅผ ๋ณ๊ฒฝํ ๋ "์ด ์ํ๋ฅผ ์ด๋ ๊ฒ ๋ณ๊ฒฝ ํ ๊ฑฐ์ผ" ๋ผ๊ณ ์๋ ค์ฃผ๋ ๊ฒ์ด๋ค. ๊ฐ์ฒด๋ก ํํ๋๊ณ , ์ด ๊ฐ์ฒด๋ฅผ ๋ง๋ค๊ธฐ ์ํด ์ก์
์์ฑ ํจ์๋ฅผ ์ด์ฉํ๋ค. ๊ฐ๋จํ ์์๋ฅผ ๋ณด์.
์ต์ด ์ก์
์ ํ์
์ ์ ์ํ๊ณ , isAdd
๋ผ๋ ์ก์
์์ฑ ํจ์์์ ์ก์
๊ฐ์ฒด๋ฅผ ๋ฐํํ๋ค. (ํ์
์ ์ธ ๋ถ๋ถ์ ๋ฌธ์์ด์ ์ฌ์ฉํด๋ ๋์ง๋ง, ๋ณ์๋ก ์ฌ์ฉํด ์ค์๋ฅผ ์ค์ด๋ ๊ฒ์ด ๋์๋ณด์ธ๋ค.)
๊ทธ๋ฐ๋ฐ ์ด๋ป๊ฒ ๋ฐ๊ฟ๊ฒ์ธ์ง๋ ์ ํ๋๋ฐ ์ด๊ฑธ ์ด๋์ ์ฒ๋ฆฌํด์ฃผ์ง?๋ผ๋ ์๊ฐ์ด ๋ ๋ค. ์ด ์ฅ์๊ฐ ๋ฐ๋ก **reducer
**์ด๋ค.
reducer
๋ ์์ฑํ ์ก์
์ ์ ๋ฌ๋ฐ์ store์ ์๋ ํ์ฌ ์ํ๋ฅผ ์ก์
์ ๋ด์ฉ๋๋ก ์
๋ฐ์ดํธ ํด์ค๋ค. ์ฌ๊ธฐ์, ์ก์
์ reducer๋ก ์ ๋ฌํ๋ ์ญํ ์ ํด์ฃผ๋๊ฒ์ด ๋ฐ๋ก dispatch
์ธ ๊ฒ์ด๋ค.
๊ทธ๋ผ ํ๋ฒ ๊ณผ์ ์ ์ ๋ฆฌํด๋ณด์.
๋จผ์ , ์ํ๋ฅผ ์ด๋ป๊ฒ ๋ฐ๊ฟ๊ฒ์ธ์ง์ ๋ํ ์ก์ ๊ฐ์ฒด๊ฐ ์ก์ ์์ฑ ํจ์๋ก๋ถํฐ ์์ฑ๋๋ค. ๋ง๋ค์ด์ง ์ก์ ๊ฐ์ฒด๋ dispatch๋ฅผ ํตํด์ reducer๋ก ์ ๋ฌ๋๋๋ฐ, reducer์์ ๋ฐ์์จ ์ก์ ๊ฐ์ฒด๋ฅผ ์ฐธ๊ณ ํ์ฌ ์๋ก์ด ์ํ๋ฅผ ๋ง๋ค์ด store์ ์ ์ฅํ๋ค.
๋ผ๋ ๊ณผ์ ์ ๊ฐ์ง๋ ๊ฒ์ด๋ค.