일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 자동완성
- 구분
- 특수문자
- ES6
- 스쿠버다이빙
- 중고나라
- Hooks
- REACT
- 정직하게사세요
- 여행
- 네이버페이사기
- 유효성검사
- 맛사지
- 마사지
- 중고나라사기
- webpack.config.js
- 삼성무선청소기제트
- JavaScript
- 중고거래사기
- 정규식
- 사기
- 해외여행
- js
- 세부
- 막탄
- plugin
- Webpack
- autocomplate
- 스노쿨링
- Today
- Total
Ryu.log
[ React redux 05 ] 리덕스의 세가지 규칙 및 정리 본문
01. 리덕스의 세가지 규칙
이 세 가지는 리덕스 공식 메뉴얼에서 알려 주는 규칙이다.
그리 복잡하지는 않지만 이 사항을 숙지한 상태에서 리덕스 관련 코드를 작성해야 상태를 원활하게 관리할 수 있다.
01 - 스토어는 단 한개
스토어는 언제나 단 한개이다. 스토어를 여러개 생성해서 상태를 관리하면 안된다.
그 대신 리듀서를 여러개 만들어서 관리할 수있다. 나중에 더 자세히 알아보자.
02 - state는 읽기 전용
리덕스의 상태, state 값은 읽기 전용입니다. 이 값은 절대로 직접 수정하면 안된다. 그렇게 하면 리덕스의 구독 함수를 제대로 실행하지 않거나
컴포넌트의 리렌더링이 되지 않을 수 있다.
상태를 업데이트할 때에는 언제나 새 상태 객체를 만들어서 넣어 주어야 한다. 업데이트를 할 때 마다 새 객체를 만들어야 하다니,
메모리 누수가 일어나지는 않을까 걱정이 된다면, 걱정하지 않아도 된다.
Object.assign을 사용 한다고 해서 이전에 사용하던 객체들이 메모리에 누적되지는 않는다.
상태 레퍼런스가 사라지면 자동으로 메모리 관리를 한다. 또 nested된 객체가 있을 때 (여러 괄호로 감싼)
그 내부의 깊은 값까지 복사하는게 아니라.
객체 내부의 키 레퍼런스만 복사하므로 객체가 복잡하다고 해서 성능이 악화되지는 않는다.
03 - 변화는 순수 함수로 구성
모든 변화는 순수 함수로 구성해야 한다. 여기에서 함수란 바로 리듀서 함수를 가리킨다.
순수 함수에서 결과 값을 출력할 때는 파라미터 값에만 의존해야 하며, 같은 파라미터는 언제나 같은 결과를 출력해야 한다.
예를 들어 리듀서 함수 내부에서 외부 네트워크와 데이터베이스에 직접 접근하면 안된다.
요청이 실패할 수도있고, 외부 서버의 반환 값이 변할 수 있기 때문이다,
리듀서 함수 내부에는 현재 날짜를 반환하는 new Date() 함수나 math.random() 함수 등도 사용하면 안된다.
02. 정리
'Prev-content' 카테고리의 다른 글
[ React + redux 02 ] 애플리케이션 상태관리 - 기본적인 틀 생성 (0) | 2018.09.13 |
---|---|
[ React + redux 01 ] 애플리케이션 상태관리 - 작업환경 설정 (0) | 2018.09.12 |
[ React redux 04 ] 리덕스 스토어 생성, 구독, 액션전달(dispatch) (0) | 2018.09.07 |
[ React redux 03 ] 변화를 일으키는 함수, 리듀서 (0) | 2018.09.07 |
[ React redux 02 ] 액션과 액션 생성함수 (0) | 2018.09.04 |