미라클 메모리<aside> 💡 상태에 어떤 변화가 필요하면 Action 이라는 것이 발생한다.
</aside>
function foo(data) {
return {
type: "DELETE_TODO",
data,
};
}
// 화살표 함수 Case
const bar = (text) => ({
type: "CHANGE_TEXT",
text,
});
<aside> 💡 리듀서는 변화를 일으키는 함수다. 액션을 만들어서 발생시키면 리듀서가 현재 상태화 전달받은 액션 객체를 파라미터로 받아온다. 그리고 두 값을 참고하여 새로운 상태를 만들어서 반환해 준다.
</aside>
const 초기값 = {
counter: 1,
};
function reducer(state = 초기값, action) {
switch (action.type) {
case "INCREASE":
return {
counter: state.counter + 1,
};
default:
return state;
}
}
<aside> 💡 프로젝트에 리덕스를 적용하기 위해 스토어를 만든다. 한 개의 프로젝트에는 단 하나의 스토어만을 가질 수 있다.
</aside>
<aside> 💡 dispatch는 액션을 발생시는 것이다. dispatch(action)과 같은 방식으로 액션 객체를 파라미터로 넣어서 호출한다. 이 함수가 호출되면 스토어는 리듀서 함수를 실행시켜서 새로운 상태를 만들어준다.
</aside>