2017-11-08 2 views
0

상태 관리를 위해 ngrx 라이브러리를 사용하여 Angular 4 앱 내에 데이터 흐름을 준비하는 데 필요한 조언이 필요합니다. 여기에 중첩 된 구성 요소 몇 가지 기본 "아키텍처"입니다 : 항목의 가) 부하 배치를 :조치는 어디에서 파견되어야합니까? Angular 4 + ngrx

Container (1) 
    |__> Toolbar - few selects to specify which properties of item 
      should be displayed (2) 
    |__> Search form - for narrowing displayed items (3) 
    |__> List of items - with pagination (4) 
     |__> Item * n (5) 

가의 세 가지 작업을 할 수있다 가정하자가 (여러 가지 사용자가 하나 개의 항목으로 할 수있는이 때문에 실제로는 더 복잡) b) 항목 삭제, c) 항목의 상태를 수정합니다.

데이터 흐름에 대한 많은 질문이 있지만 기본적으로 ItemComponent 내부에서 작업 b) 및 c)을 전달하는 것이 합리적인지 궁금합니다. 정말 아이디어가 마음에 들지 않지만 대안은 ItemComponent에서 ListComponent 및 ContainerComponent로 이벤트 삭제/수정에 대한 정보를 보내는 것입니다. 따라서 입출력 체인이 필요 없기 때문입니다.

질문 : ItemComponent를 "스마트"하고 상점에 조치를 전달할 수 있습니까? 아니면 나쁜 디자인입니까?

답변

1

아마도이 질문에 대한 완벽한 대답은 아니지만 서비스를 사용하여 모든 발송 작업을 마무리하는 것을 고려해야합니다 (추가 읽기 http://blog.brecht.io/A-scalable-angular2-architecture/). 그러면 구성 요소 데이터 흐름을 엉망으로 만드는 데 도움이됩니다.

위의 기사에서 설명한 것과 같은 서비스를 사용하고 싶지 않다면 ItemComponent에서 디스패치를 ​​수행하는 것이 좋지 않은 디자인이라고 생각합니다. 이는 하나의 데이터 요소를 나타내는 구성 요소를 제공하기 때문에 지식입니다 스마트 컨테이너 구성 요소에 있어야합니다. about container and presentational components

+0

감사합니다. 특히 첫 번째 기사는 매우 도움이되었고 새로운 가능성을 열어주었습니다. –