state
에 어떠한 변화가 일어날 때 우리는 액션이란 것을 발생시킨다. 이는 하나의 객체로 표현되는데, 액션 객체는 아래와 같은 형식으로 이뤄져있다.
액션 객체
const ADD_ITEM = "ADD_ITEM";
{ type: ADD_ITEM, text: 'Build my first Redux app' }
type
필드를 필수적으로 가지고 있어야한다.액션 생성함수
const ADD_ITEM = "ADD_ITEM";
export const addItem = (payload) => { // 액션 "생성 함수"
return {
type: "ADD_ITEM", // 액션 "객체"
payload
};
};
const ADD_TODO = "ADD_TODO";
function reducer(state = initialstate, action) {
switch (action.type) {
case ADD_TODO : // action의 type이 ADD_TODO 일 경우
// ... 상태업데이트 로직
}
return state;
}
state
: 현재 상태action
: 액션 객체상태에 변화가 생기면 이전에 컴포넌트가 스토어한테 구독 할 때 전달해줬던 함수 listener가 호출된다. 이를 통하여 컴포넌트는 새로운 상태를 받게되고 이에따라 컴포넌트는 리런더링 하게된다.