동일한 데이터는 항상 같은곳에서 가져온다.
(데이터를 저장하는 스토어라는 하나뿐인 공간이 있다.)
상태 값은 불변 객체이다.
const incrementAction = {
type: 'INCREMENT',
amount: 10,
};
store.dispatch(incrementAction)
1 ) 액션 객체는 type 속성이 존재한다.
2 ) type 속성이 아닌 것들은 상태 값을 수정하기 위한 정보이다.
3 ) 액션객체와 dispatch 메소드를 호출해야 상태 값이 변한다.
### 3. Changes are made with pure functions
변경은 순수함수로만 가능하다.
상태 값을 변경하는 리듀서(reducer) 함수를 사용해야 한다.
- 동일 input? then 동일 output
```js
(state, action) => nextState
리듀서:두가지 파라미터를 받아오며, 현재의 상태와 전달 받은 액션을 참고하여 새로운 상태를 만들어 반환한다.
ㄴ 현재 앱의 상태, 리듀서, 추가적인 내장 함수가 존재한다.
ㄴ 하나의 애플리케이션은 하나의 스토어만 만들어야한다.
ㄴ 스토어는 리듀서 함수를 실행시켜, 해당 액션을 처리, 새로운 상태를 만든다.
dispatch(action)
ㄴ 상태가 업데이트 할 때마다 전달 받은 함수를 호출한다.
ㄴ 디스패치로 액션을 발생시킨다.
dispatch(action)
ㄴ 타입은 필수 값이며, 나머지 값들을 필요에 따라 넣어야한다.
const incrementAction = {
type: 'INCREMENT',
amount: 10,
};
ㄴ 스테이트와, 액션에 의존해서 작동해야한다.
ㄴ액션과 연결됨, 운반과정에 리듀서를 거쳐서 가야함