2016-08-17 28 views
3

저는 바닐라 리 액트 (redly)를 잠시 사용 해왔고, 지금 내가하고있는 새로운 프로젝트에 대해 리 듀스 (Redux)를 자세히 살펴보기로 결정했습니다.redux로 구성 요소 상태를 처리하는 방법은 무엇입니까?

처음에 나는 모두 사용자 활동으로 인해 조치가 취해지고 그 주된 이유 중 하나는 적절한 조치를 재생하여 응용 프로그램 상태를 재구성 할 수 있다는 것입니다.

그러나 문제는 실제로 응용 프로그램 상태와 같은 느낌이 들지 않는 많은 것을 저장소에 넣는 것입니다. "이 입력에 초점을 맞추면 레이블이 녹색으로 변합니다"과 같은 구성 요소는 수백 가지 구성 요소로 구성 될 수있는 응용 프로그램의 응용 프로그램 상태로 표현되는 데 적합하지 않은 것처럼 보입니다. 이러한 것들은 일반적인 할일 자습서에서 완전히 이해가되지만 더 복잡한 시나리오에서 어떻게 나오는지를보기가 어려울 수 있습니다.

다음은 좀 더 읽고, 제작자 Dan Abramov가 뒷받침하는 일반적인 견해는 일반적으로 로컬 구성 요소 상태를 응용 프로그램 상태 (저장소)와 결합해야한다는 것입니다. "가장 어색한 것 같지 않은 것"은 국가를 어디에 보관할 것인가에 대한 경험의 법칙처럼 보였다.

한편으로 이것은 실제 적용 상태이고 여러 구성 요소와 관련이있는 항목이 저장소에 있어야하는 반면 단일 구성 요소에만 관련된 엄격한 표현 세부 정보는 정상적인 반응 상태를 사용하여 처리되어야합니다 . 반면에이 접근 방식은 처음에 내가 쓴 것 때문에 약간 혼란 스럽습니다. 즉, redux를 사용하는 주된 부분은 구성 요소간에 분산 된 상태를 피하고 상태를 다시 만들 수 있다는 것입니다 행동을 저장하는 것만으로?

나를 귀찮게 해 주었기 때문에 누군가가이 문제에 관해 밝혀 줄 수 있기를 바란다. 그리고 그것은 내가 redux와 복잡한 것을 만들기 전에 견고한 견해를 가져야한다고 생각한다.

답변

3

전적으로 당신에게 달린 상태는 전적으로 귀하에게 달려 있습니다. 때로는 모든 것을 Redux에 넣는 것이 이치에 맞을 수도 있습니다. 때로는 구성 요소에 물건을 넣어 두는 것이 좋습니다. 최근에 좋은 규칙을 보았습니다.

  • 해당 응용 프로그램의 다른 부분에서 해당 데이터를 신경 써야합니까?
  • 데이터에서 추가 데이터를 추출 할 수 있어야합니까?
  • 여러 구성 요소/기능을 구동하는 데 동일한 데이터가 사용됩니까?
  • 주어진 시점 (예 : 시간 이동/디버깅)으로 상태를 복원 할 수있는 가치가 있습니까?
  • 데이터를 캐시하고 싶습니까? 다시 요청하지 않고 상태에서 다시로드하십시오.

(. 그 목록 https://www.reddit.com/r/reactjs/comments/4w04to/when_using_redux_should_all_asynchronous_actions/d63u4o8에 신용)

또한이 주제에 돌아 오는 FAQ를 참조하십시오 http://redux.js.org/docs/FAQ.html#organizing-state-only-redux-state.

관련 문제