react-tutorial
react-tutorial copied to clipboard
2. 리덕스의 3가지 규칙 · GitBook
리덕스의 3가지 규칙
-
하나의 애플리케이션에 하나의 스토어
-
상태는 읽기전용 리액트의 불변성
-
변화를 일으키는 함수, 리듀서는 순수한 함수 동일한 인풋 => 동일한 아웃풋 new Date(), 랜덤 숫자 생성, 네트워크에 요청 등은 순수하지 않은 작업(?) -> 리듀서 밖에서 처리
하나의 애플리케이션 안에는 하나의 스토어를 가져야 한다.
- 하나의 App에는 하나의 스토어를 만들어 사용한다.
- 필수는 아니지만 권장하지 않는다.
- 개발 도구를 활용할 수 없기 때문이다.
상태는 읽기 전용이다.
- 기존의 상태를 수정하지 않고 새로운 상태를 생성하여 업데이트한다. (교체의 개념)
- 이를 통해 불변성을 유지할 수 있다. → 데이터의 변경을 감지하기 위해서는 내부 데이터까지 전부 찾아봐야 하는데 이 경우 시간이 너무 오래 걸린다. → 따라서 기존 상태의 객체를 새로운 객체로 변경하면 객체의 주소가 다르므로 변경을 쉽게 감지하는것이 가능하다.
리듀서는 순수한 함수여야 한다.
- 리듀서는 이전 상태와 액션 객체를 파라미터로 받는다.
- 이전의 상태는 건들이지 않고 변화로 새로운 상태 객체를 만든다.
- 동일 인풋에 대한 동일 아웃풋이 보장되어야 한다. (순수해야 한다.)
하지만 그렇지 않은 경우도 존재한다. 이때 리덕스 미들웨어라는 것을 사용한다.
3번 변화를 일으키는 함수 ~에서 두 번째 쓰신 문장에 다음 "건드리지"가 맞는 걸로 알고 있습니다~ 확인 부탁드려요 이전의 상태는 절대로 건드리지 않고, 변화를 일으킨 새로운 상태 객체를 만들어서 반환합니다.