리덕스 키워드를 알아보자.
Store
리덕스에선 한 어플리케이션 당 하나의 스토어를 가지게 되는데,
Store의 내부에는 state(상태) , reducer , dispatch , subscribe, getState 와 같은
내부 함수들이 들어가 있다.
reducer
리듀서는 state를 입력값으로 받고 action을 참조해서 새로운 state 값을 만들어내
리턴해주는 state의 변화를 일으키는 함수이다.
State
위에 소개한거처럼 store 내부에 속해있는 현재 상태이고,
직접 접근해서 상태를 수정하지 못한다.
dispatch
디스패치는 위에서 말했던 것 처럼 스토어의 내장함수 중 하나이다.
dispatch 라는 함수에는 액션을 파라미터로 전달합니다.
dispatch(action)
그렇게 호출을 하면, 스토어는 리듀서 함수를 실행시켜서 해당 액션을 처리하는
로직이 있다면 액션을 참고하여 새로운 상태를 만들어준다.
subscribe
subscribe에 render 함수를 등록해놓으면 state의 값이 바뀔때마다
render 함수가 호출되면서 reducer 함수가 호출된다.
++ UI 을 최신 상태로 갱신해준다.
action
{
type: "TOGGLE_VALUE"
}
이런 객체 형태이고, type 이란 필드는 필수적으로 들어가야합니다.
이 외에 나머지 부분은 개발자가 나름대로 선택할 수 있습니다.
이 액션이 디스패치에 전달되어 디스패치가 리듀서를 호출해서 state의 값을 바꾸게 한다.
render
현재 state의 값을 담은 UI를 만들어준다. (화면에 그려준다.)