※ 생활코딩 Redux 수업을 들으면서 정리하는 글입니다.
Redux는 자신을 자바스크립트로 만든 어플리케이션을 위한 예측가능한 상태 저장소
이라고 소개하고 있다.
리덕스의 핵심은 store으로, 정보가 저장되는 곳이다.
store안에는 실제 정보가 state에 저장된다.
참고로 state에는 직접 접근할 수 없다.
function reducer(oldState, action){
//...
}
var store = Redux.createStore(reducer);
Redux와 상관없이 UI를 만들어주는 우리가 짤 코드이다.
function render() {
var state = store.getState();
//...
document.querySelector('#app').innerHTML`
<h1>WEB</h1>
....
`
}
render는 내부적으로 store에서 데이터를 가져오고, getState는 state에서 값을 가져와 render에게 값을 전달한다. (직접 state에 접근 못하는 이유는 직접 접근하다가 망가질 수 있기 때문)
store.dispatch({type:'create', payload: {title:title, desc:desc}});
전송되는 객체를 action이라고 한다.
subscribe에 render함수를 등록 해 놓으면 store의 state가 바뀔 때마다 UI가 갱신된다.
store.subscribe(render);
getState는 state에서 값을 가져와 render에게 값을 전달한다.
store에 있는 state에 직접 접근해서 값을 가져오는게 금지되어있기 때문에,
getState
를 통해서 값을 가져오고,dispatch
를 통해 값을 변경시키고,subscribe
를 이용해 값이 변경될 때 구동될 함수를 등록해준다.
reducer
를 이용해 state 값을 변경한다.