우리는 Angular 2 앱에서 ngrx/store를 사용하고 있습니다. 우리 가게는 Reducers "cameraReducer", "subjectReducer"
...의 결합입니다 ... 그리고 우리는 몇 가지 글로벌 및 공통 (diff 기능을 통해) 항목을 "로드 데이터"와 같은 "appReducer"
속성을 유지하고 싶습니다.Angular2 - 감속기 간의 공유 작업이 나쁜 생각입니까?
이와 같은 시나리오에서 과 appReducer
사이에 {type:LOADING_*, payload}
과 같은 동작을 공유하는 것이 합리적입니까? 단일 작동 (단일 감속기 및 단일 동작 사용) 또는 여러 관련 데이터 작업 (다중 감속기 및 다중 동작 사용)과 같이 생각할 수있는 기능이 시작되고 꺼지는 동안 기능이 켜져 있어야합니다 한 번 완료되었습니다. appReducer는 다음과 같이 표시 될 수 있습니다.
case LOADING_CAMERA:
LOADING_SUBJECT:
return state.setIn('loading') = true;
Adv - No 상용구. 단점 - 인디케이터가 켜지거나 꺼지는 시점에 감속기의 순서가 결정됩니다. 온/오프 팝업 표시의 제어 주문 -
또는
case LOADING:
return state.setIn('loading') = true;
우리는 각각의 기능을 호출
this.store.dispatch({action:'LOADING', payload: true});
//functionality
this.store.dispatch({action:'LOADING', payload: false});
교수실의 시작/끝 부분에 다음과 같은 코드를 가질 수 있습니다. 단점 - 로딩을 켜고 끄는 상용구 코드.
또는
우리는 (각 감속기가 자신의 로컬 "로드"특성을 갖는 및 해당 속성의 관찰 가능한과) 결합 관찰 가능한로서 "로드"를 계산하기 위해 시도 할 수
.Adv- 아니오 표시기 켜기/끄기에 대한 상용구 및 제어 주문. 단점 - 증가 된 복잡성과 더 많은 코드가있을 수 있습니다.