2016-11-29 9 views
2

반응이 좋지 않다고 생각합니다. 나는 redux의 모든 조각들이 어떻게 상호 작용하는지 알아 내려고 노력 중이다. 나를 괴롭히는 한 가지는 행동과 감속기 사이의 관계를 이해하는 것입니다. 작업이 호출되면 저장소는 사용할 감속기를 어떻게 알 수 있습니까? 액션 유형 이름에 완전히 기초를 둡니까? 형식 이름은 고유해야합니까? 감속기가 누구에게 또는 새로운 상태 객체를 상점이나 상점으로 전달합니까? 내가 알고있는 것처럼Redux - 작업에 이식 자의 관계

, 그것은 다음과 같이 간다 : (액션)

  • 가게라고

    1. store.dispatch 행동 유형
    2. 감속기 클론 현재 상태의 개체를 기반으로 관련 감속기를 발견, 변경 사항을 적용한 후 (어딘가에)
  • 답변

    4

    1 : 저장소에서 사용할 감속기를 어떻게 알 수 있습니까? -> 이것은 작업 유형에 전적으로 근거합니다.

    2 : 형식 이름은 고유해야합니까? -> 이것은 규칙이 아닙니다. 하지만 대부분 그렇습니다. 각 조치에는 고유 한 유형 이름이 있으며 해당 감속기가 호출됩니다.

    3 : 감속기가 새로운 상태 개체를 누구에게 전달합니까? 저장소 또는 작업이 무엇입니까? -> 감속기가 새 상태 개체를 어디에도 전달하지 않습니다. 기본적으로, 그것은 듣고있는 모든 반응 구성 요소에 상태 변경 이벤트를 트리거합니다. 변경된 상태를 청취하는 모든 구성 요소가 새 버전의 상태로 다시 렌더링되므로 DOM이 업데이트됩니다.

    +0

    감사합니다. 나는 지금 함께 사물을 조각하기 시작했다. – steveareeno

    1

    일반적으로 완전한 상태를 담당하는 하나의 감속기 만 있습니다.

    이 감속기는 각기 다른 상태 조각을 담당하는 다른 작은 감속기 기능으로 나눌 수 있습니다. 예를 들어 Redux's combineReducers() utility도 가능하지만 직접 할 수도 있습니다.

    combineReducers()을 사용하는 경우 각 감속 기능이 각 작업에 대해 실행됩니다. 그런 다음 액션 유형에 따라 순전히 결정을 내림으로써 액션이 상태 슬라이스에 영향을 미치는지 결정합니다. 그렇다면이 슬라이스의 업데이트 된 복사본이 반환됩니다. 슬라이스가 조치의 영향을받지 않으면 변경되지 않은 상태로 리턴됩니다.

    1

    전형적인 Redux 설정에서 모든 작업이 모든 작업 감속기로 전달되고 감속기가 해당 작업을 염두에 둘지 결정합니다. 일반적인 패턴은 action.type을 확인 감속기의 스위치입니다 그것에 대해 신경 행동과 그냥이 같은 현재 상태를 반환하는 기본 경우에 경우가 있습니다이 경우

    export default (state = false, action) => { 
        switch (action.type) { 
        case START_LOADING: 
         return true; 
        case STOP_LOADING: 
         return false; 
        default: 
         return state; 
        } 
    } 
    

    을, 나는 말하고 내 감속기는 START_LOADING 또는 STOP_LOADING 유형의 동작에만 관심이 있으며 다른 모든 경우에는 이전 상태로 되돌려 야합니다.

    Redux (및 Flux)를 잘 이해하려면 Code Cartoons (Lin Clark) 또는 그녀의 video (대부분 같은 것을 다루고 있음)을 확인하는 것이 좋습니다.