redux의 구조
redux의 3가지 규칙
- 하나의 리액트 앱에는 딱 하나의 스토어만! (스토어를 여러 개 만들면 개발도구 활용 못하게 됨!)
- 상태는 읽기 전용임!
- 리덕스에서 불변성을 유지해야 하는 이유는 내부적으로 데이터가 변경 되는 것을 감지하기 위하여 shallow equality 검사를 하기 때문입니다. 이를 통하여 객체의 변화를 감지 할 때 객체의 깊숙한 안쪽까지 비교를 하는 것이 아니라 겉핥기 식으로 비교를 하여 좋은 성능을 유지할 수 있는 것
- 변화를 일으키는 함수, 리듀서는 순수함 함수여야!
- reducer(이전상태, 액션객체)
- 이전 상태를 절대로 건들이지 않고, 변화를 일으킨 새로운 객체를 만들어서 반환
- 똑같은 파라미터로 호출된 리듀서는, 언제나 똑같은 결과값을 반환해야함!
리덕스 모듈
ducks패턴
"리듀서와 액션 관련 코드들을 하나의 파일에 몰아서 작성"하는 스톼일!
https://github.com/erikras/ducks-modular-redux