2017-09-12 4 views
1

첫 Flux 튜토리얼 https://github.com/facebook/flux/tree/master/examples/flux-todomvcFlux에서 ActionTypes의 용도는 무엇입니까?

'TodoActionTypes.js'파일이 실제로 무엇을하는지 혼란스러워합니다.

내가 묻는 것에 대해 명확하지 않은 점이 있으면 알려 주시기 바랍니다.

나는 앱 조회의 onToggleTodo 소품으로 설명하려고합니다 :

<AppView /> renders <Main /> which has props.onToggleTodo which is triggered on onChange. 

그래서 onchange를가 TodoActions.toggleTodo을 트리거합니다. TodoActions에서

는 toggleTodo가 트리거되고이

toggleTodo(id) { 
    TodoDispatcher.dispatch({ 
     type: TodoActionTypes.TOGGLE_TODO, 
     id, 
    }); 
}, 

이 TodoActionTypes.js에서,이 상점에 종류와 ID로 행동 전달 :이, TodoStore.js에서

const ActionTypes = { 
    ... 
    TOGGLE_TODO: 'TOGGLE_TODO', 
}; 

을 은

switch (action.type){ 
    case TodoActionTypes.TOGGLE_TODO: 

제 질문은 왜 필요합니까? 어디서나 'TOGGLE_TODO'을 (를) 시작 하시겠습니까?

답변

1

이 패턴은 리터럴 문자열을 사용을 통해 많은 혜택을 제공 : 잘못 값을 입력 의 결과로

  • 버그 수동으로 추적하기가 훨씬 쉽다. TypeScript와 같은 유형 검사 도구를 사용한다면 컴파일러는이 사실을 명확하게 표시합니다. 최소한 눈이 자동으로 올바르게 고려할 수있는 매우 유사한 값 대신에 undefined이 표시됩니다.
  • 리팩토링을 지원하는 편집자는이 경우 그렇게 할 수 있습니다.
  • 쉽게 값을 변경할 수 있습니다 (값 및/또는 유형 모두). 예를 들어, 값을 비트 마스크로 사용하려는 트랙을 결정할 수 있으므로 유형을 정수로 변경해야합니다.
  • 다른 프로젝트 참여자에게 가능한 TodoActionTypes의 명확한 목록을 제공합니다.
  • 가능한 TodoActionTypes (예 : for..in 루프)에 프로그래밍 방식으로 액세스하고 추론 할 수있는 기능을 제공합니다.
관련 문제