๋ฆฌ์กํธ๋ก ์น์ฑ์ ๊ฐ๋ฐํ๊ธฐ ์์ํ๊ฒ ๋๋ฉด, Redux dev tool์ ์ค์นํ๊ฒ ๋๋ค.
๊ฒ์๊ธ์ ๋ค์ด๊ฐ๊ธฐ ์์ Redux์ ๋ํ ๊ฐ๋ ๋ถํฐ ์ง๊ณ ๊ฐ๋๋ก ํ๊ฒ ๋ค.
โจ Redux(๋ฆฌ๋์ค๋)?
JavaScript(์๋ฐ์คํฌ๋ฆฝํธ) ์ํ๊ด๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ฉฐ, ๋ณธ์ง์ Node.js ๋ชจ๋์ด๋ค.
โจ Redux์ 3๊ฐ์ง ์์น
1. Single Source of Truth
- ๋์ผํ ๋ฐ์ดํฐ๋ ํญ์ ๊ฐ์ ๊ณณ์์ ๊ฐ์ง๊ณ ์จ๋ค. ์ฆ, ์คํ ์ด๋ผ๋ ํ๋๋ฟ์ธ ๋ฐ์ดํฐ ๊ณต๊ฐ์ด ์๋ค๋ ์๋ฏธ.
2. State is read-only
- ๋ฆฌ์กํธ์์๋ setState ๋ฉ์๋๋ฅผ ํ์ฉํด์ผ๋ง ์ํ ๋ณ๊ฒฝ์ด ๊ฐ๋ฅ.
- ๊ฐ์ ๋งฅ๋ฝ์ผ๋ก, ๋ฆฌ๋์ค์์๋ ์ก์ (action) ์ด๋ผ๋ ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํด์๋ง ์ํ ๋ณ๊ฒฝ์ด ๊ฐ๋ฅ.
3. Changes are made with pure functions
- ๋ณ๊ฒฝ์ ์์ํจ์๋ก๋ง ๊ฐ๋ฅ. Reducer์ ์ฐ๊ด๋๋ ๊ฐ๋ .
- Store(์คํ ์ด) - Action(์ก์ ) - Reducer(๋ฆฌ๋์)
โจ Redux์ ์ํ ๊ด๋ฆฌ๋ฅผ ๋์ํํด๋ณด์.
โจ Redux์์ ์์ ๊ฐ๋ ์ ๊ตฌํํ๋ 2๊ฐ์ง ๋ฐฉ๋ฒ
1. mapStateToProps()
2. Redux hooks
- ๋น๊ต์ ์ต๊ทผ์ ๋์จ ๊ธฐ์ .
- useSelector / useDispatch
โจ Redux์ ์ฅ์
1. ์์ํจ์๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์ํ๋ฅผ ์์ธก ๊ฐ๋ฅํ๋๋ก ๋ง๋ค์ด์ค๋ค.
2. ๋ณต์กํ ์ํ๊ด๋ฆฌ๋ค๊ณผ ๋น๊ตํ๋ฉด, ์ ์ง๋ณด์๊ฐ ๋น๊ต์ ์ฌ์ด ํธ์ด๋ค.
3. ํฌ๋กฌ ํ์ฅ ํ๋ก๊ทธ๋จ์ธ Redux Dev Tool ์ ์ฌ์ฉํ์ฌ action๊ณผ state log ๊ธฐ๋ก ์ ๋๋ฒ๊น ์ ์ ๋ฆฌํ๋ค.
4. ์์ํจ์๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ test(ํ ์คํธ)๋ฅผ ๋ถ์ด๊ธฐ๊ฐ ์ฉ์ดํด์ง๋ค.
๐ฑ๐ป Redux Dev Tool ์ค์น๋ฐฉ๋ฒ
1. ํฌ๋กฌ์ ์ผ ๋ค, ๊ตฌ๊ธ์์ redux dev tools ๋ฅผ ๊ฒ์ํ๋ค.
์ ์ผ ์๋จ์ chrome.google.com ์ Redux DevTools ๋ฅผ ํด๋ฆญํ๋๋ก ํ์.
ํน์ link ํด๋ฆญ > https://chrome.google.com/webstore/detail/redux-devtools/lmhkpmbekcpmknklioeibfkpmmfibljd
2. ์ค์น๋ฅผ ํ๋ฉด ๋๋๋ฐ, ํ์์ ๊ฒฝ์ฐ ์ด๋ฏธ ๊น๋ ค์๊ธฐ ๋๋ฌธ์ 'Chrome์์ ์ญ์ '๋ผ๋ ๊ธ์ ๋ฒํผ์ด ๋ฌ๋ค.
3. ์ค์น๊ฐ ์๋ฃ ๋๋ฉด, redux dev tools ๋ฅผ ์ฌ์ฉํ ํ๋ก์ ํธ์์ store์ ์์ฑํ๋ ์ฝ๋์ Redux Devtools Extension์ ์ถ๊ฐํด์ฃผ๋ฉด ์๋ฃ.
const store = createStore(
rootReducer,
compose(
applyMiddleware(sagaMiddleware),
window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__()
)
);
4. ์ฌ์ฉ๋ฒ: ๊ตฌํ๋ react app ํ๋ฉด์์ F12(๊ฐ๋ฐ์๋๊ตฌ) ๋ฅผ ๋๋ฌ redux ๋ฅผ ํด๋ฆญํ๊ณ State, Action ๋ฑ์ ํ์ธํด์ฃผ๋ฉด ๋๋ค.
์ด๋ ๊ฒ Redux Devtools ๋ฅผ ์ฌ์ฉํ๊ฒ ๋๋ฉด.. ์ฅ์ !
์ค๋ณต ๋ ๋๋ง๋ ๋ฐฉ์งํ ์ ์๊ณ
ํจ์จ์ ์ผ๋ก State๊ฐ๋ ๊ด๋ฆฌํ ์ ์๊ณ
๋ ์์๊ณ , ๋ ์๋ฆ๋ค์ด Redux ์ฝ๋๋ ์์ฑ์ด ๊ฐ๋ฅํ๊ฒ ๋๋ค
์ฐธ๊ณ ๋ฌธํ
https://bigstar-vlog.tistory.com/47