JS로 만든 APP 들을 위한 예측가능한 상태의 저장소
function reducer (state, action){
if(state === undefined){
// 최초의 초기화 단계
// state 값이 정의되어 있지 않는 상태에서 reducer 가 호출되었다.
return { color: "yellow"}
}
}
var store = Redux.createStore(reducer);
function red() {
var state = store.getState()
document.querySelector('#red').innerHTML = `
<div class="container" id="component_red" style="background-color:${state.color}">
<h1>red</h1>
</div>
`
}
red()
// reducer function 안에서..
var newState;
if(action.type === "CHANGE_COLOR"){
newState = Object.assign({}, state, {color: action.color})
// 두번째 인자가 첫번째 빈 객체에 복제되서 그 객체가 리턴된다.
// 세번째 인자가 덮어쓰게된다. -> 그 결과를 리턴
// 불변성 때문에 복제 방법 사용
}
return newState
store.subscribe(구독할 함수이름)
출처 : 생활코딩 Redux
https://www.inflearn.com/course/redux-%EC%83%9D%ED%99%9C%EC%BD%94%EB%94%A9