Redux(๋ฆฌ๋์ค)๋?
๋ฆฌ๋์ค๋ ์๋ฐ์คํฌ๋ฆฝํธ ์ํ๊ด๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค.
์ฐ์ ๋ฆฌ๋์ค๋ ๋ฆฌ์กํธ ๋ด๋ถ์ ์๋ ๊ธฐ์ ์ด ์๋๋ฉฐ ์์ HTML, JAVASCRIPT ๋ด์์๋ ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค.
์ปดํฌ๋ํธ์ ์ง์ค๋ ๋ฆฌ์กํธ์ ์๋์ง๊ฐ ์ข์ผ๋ ๋์ฒด์ ์ผ๋ก ๋ฆฌ์กํธ์ ๋ฆฌ๋์ค๋ฅผ ์ฌ์ฉํ ๋ฟ์ด๋ค.
Redux์ ๊ธฐ๋ณธ ๊ฐ๋ : ์ธ ๊ฐ์ง ์์น
Single source of truth
- ๋์ผํ ๋ฐ์ดํฐ๋ ํญ์ ๊ฐ์ ๊ณณ์์ ๊ฐ์ง๊ณ ์จ๋ค.
- ์ฆ, ์คํ ์ด๋ผ๋ ํ๋๋ฟ์ธ ๋ฐ์ดํฐ ๊ณต๊ฐ์ด ์๋ค๋ ์๋ฏธ์ด๋ค.
State is read-only
- ๋ฆฌ์กํธ์์๋ setState ๋ฉ์๋๋ฅผ ํ์ฉํด์ผ๋ง ์ํ ๋ณ๊ฒฝ์ด ๊ฐ๋ฅํ๋ค.
- ๋ฆฌ๋์ค์์๋ ์ก์ ์ด๋ผ๋ ๊ฐ์ฒด๋ฅผ ํตํด์๋ง ์ํ๋ฅผ ๋ณ๊ฒฝํ ์ ์๋ค.
Changes are made with pure functions
- ๋ณ๊ฒฝ์ ์์ํจ์๋ก๋ง ๊ฐ๋ฅํ๋ค.
- ๋ฆฌ๋์์ ์ฐ๊ด๋๋ ๊ฐ๋ ์ด๋ค.
- Store(์คํ ์ด) – Action(์ก์ ) – Reducer(๋ฆฌ๋์)
Store, Action, Reducer์ ์๋ฏธ์ ํน์ง
Action (์ก์ )
0๏ธโฃ Action(์ก์ )์ ์ฑ์์ ์คํ ์ด์ ์ด๋ฐํ ๋ฐ์ดํฐ์ ํ๋์ ๋ช ์ธ์(์ด๋ฆ)๊ฐ ๋ด๊ฒจ์๋ค.
1๏ธโฃ Action(์ก์ )์ ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ์ฒด ํ์์ผ๋ก ๋์ด์๋ค.
- Simple JavaScript Object
{
type: "INCREASE",
},
// or
{
type: 'ADD_TODO', // ํ์
payload: { // ์ต์
todo: '๋นจ๋ํ๊ธฐ',
}
}
type์ ๋จ์ํ ์ด๋ค ๋์์ ํ๊ธฐ ์ํ ๋ช ๋ น์ ์์๋ณด๊ธฐ ์ฝ๊ฒ ์ง์ ํ ์ปค์คํ ์ด๋ฆํ์ด๋ค.
์๋ฅผ ๋ค์ด ๋๋ INCREASE ( ์ฆ๊ฐํ๋ค )๋ผ๊ณ ์ด๋ฆํ๋ฅผ ๋ถ์ธ ๋ช ๋ น์ ๊ฐ์ ํ๋ ์ฆ๊ฐ์ํค๋ ๋ช ๋ น์ผ๋ก
์๋ณ ํ๊ฒ ๋ค๊ณ ์ฌ์ฉ์๊ฐ ์ ํ๋ ๊ฒ์ด๋ค.
Reducer (๋ฆฌ๋์)
0๏ธโฃ Action(์ก์ )์ Reducer(๋ฆฌ๋์)์ ์ ๋ฌํด์ผํ๋ค.
1๏ธโฃ Reducer(๋ฆฌ๋์)๊ฐ ์ก์ ์์์จ ์ด๋ฆํ๋ฅผ ๋ณด๊ณ ์ ํด์ง ๋ช ๋ น์ ํตํด Store(์คํ ์ด)์ ์ํ๋ฅผ
์ ๋ฐ์ดํธํ๋ ๊ฒ์ด๋ค.
2๏ธโฃ Action(์ก์ )์ Reducer(๋ฆฌ๋์)์ ์ ๋ฌํ๊ธฐ ์ํด์๋ dispatch() ๋ฉ์๋๋ฅผ ์ฌ์ฉํด์ผํ๋ค.
const initialState = {
todo:"",
count:0,
}
function reducer(state = initialState, action) {
switch(action.type) {
case 'INCREASE':
return {
..state,
count:count + 1;
}
case 'LOG_IN_REQUEST':
return {
..state,
todo:action.payload.todo;
}
default:
return state;
}
}
์์ ๊ฐ์ด ์ก์ ์์ ๋ถ์ฌ๋ ผ ์ด๋ฆํ์๋ฐ๋ผ case๋ฌธ์ ํตํด ์ค์ ๋ ๋ช ๋ น์ ์คํํ๋ค.
Store (์คํ ์ด)
Store(์คํ ์ด)๋ ์ํ๊ฐ ๊ด๋ฆฌ๋๋ ์ค์ง ํ๋์ ๊ณต๊ฐ์ด๋ค.
๋ฆฌ๋์ค์์ ๊ฐ์ฅ ์ค์ํ ๊ฐ์ฒด(์ธ์คํด์ค)์ด๋ค.
์ด ์์ ํ์ฌ ์ํ(state[data])๋ฅผ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ, ์ก์ ๊ฐ์ ๋ฐ์ ๋์คํจ์นํจ์๊ฐ ๋ฆฌ๋์๋ก ์ ๋ฌํ ์ํ๊ฐ์
์ ์ฅํ๋ ๊ณณ์ด๋ค. ( ๋ฆฌ์กํธํ๋ก์ ํธ์์ ์ฌ์ฉํ๋ state์ ์ค์ ์ ์ฅ์ )
๐์ฐธ๊ณ
https://mjn5027.tistory.com/33
https://hanamon.kr/redux๋-๋ฆฌ๋์ค-์ํ-๊ด๋ฆฌ-๋ผ์ด๋ธ๋ฌ๋ฆฌ/
'๐Library > โ Redux' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ํ๊ด๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋? (0) | 2022.12.07 |
---|