Redux
- Flux와 기능이 비슷하지만 Flux는 store가 여러개를 사용할 수 있지만 Redux는 한가지의 store를 사용한다. 대신, Redux의 store는 다양한 상태 객체로 나뉘어진다.
Redux의 세 가지 원칙
- 상태는 읽기 전용이다.
- 순수 함수로써 변경이 된다.
- 단일 소스이다.
액션
- 리덕스의 상태를 변경하기 위해서는 액션을 내보내야한다. 액션은 자바스크립트 "객체"이며, 어떤 일이 발생하는지 알려주는 type 속성을 반드시 가진다. 또한, 상태 변경을 위한 값인 payload를 가진다. 이 때, payload는 없을 수도 있으며, 2개 이상일 수도 있다. 또한 속성 이름은 개발자가 임의로 정할 수 있다.
액션 생성자
액션 생성자는 액션을 생성하는 "함수"
export const todo = (text) => ({type:TODO,text});
리듀서
액션은 어떤 일이 발생하는지만 설명한다. 애플리케이션의 state가 어떻게 변할지 알려주는 일은 리듀서가 한다.
리듀서는 이전의 상태를 받아 새로운 상태를 반환한다.
const reducer = (state,action) =>{return newState}
스토어
store는 객체로써 그들을 하나로 모으는 일을 한다.
- 애플리케이션의 상태를 가진다.
- subscribe(listener)에 의해 반환된 함수를 호출함으로써 리스너의 등록 취소를 할 수 있다.
- dispatch(action) 를 통해 상태를 업데이트할 수 있다.