실제로 플럭스 패턴을 연구하고 있는데 stores .

정확히 무엇입니까?

많은 기사를 읽었는데, 도메인.

이게 api 호출이나 백엔드 호출과 관련된 “추상적 인”부분이라는 의미입니까?

나에게 명확하지 않습니다.

편집 : 앵귤러 팩토리와 똑같은 것일까 요? 원격 데이터를 가져 오거나 비즈니스 작업을 수행하거나 일부 앱 상태를 저장합니까 (예 : 현재 사용자가 연결됨)?

댓글

  • 정확하게 사용자에 대한 링크 ' 말하는 것이 도움이 될 것입니다. 이 " 플럭스 패턴 "을 의미합니까? fluxxor.com/what-is-flux.html
  • facebook.github. io / flux / docs / overview.html # content
  • Flux는 모든 데이터가 먼저 디스패처를 통과한다는 제약 조건이있는 게시 / 구독 패턴에 불과합니다. 데이터가 뒤로 돌아 가지 않고 혼란을 야기하지 않도록 보장합니다. " Store ", " 액션 " 등은 시스템의 구성 요소 및 전달되는 데이터를 나타내는 또 다른 방법입니다.

답변

알겠습니다. 단계별로 설명하겠습니다.

1 Flux 란 무엇입니까?

  • 패턴
  • 중앙 집중식 디스패처
  • 단방향 데이터 흐름
  • 목록 항목

또한 이유 때문에 Flux라고 부릅니다.

Flux 구현

  • Facebook의 Flux
  • Alt
  • Reflux
  • Flummox
  • NuclearJS
  • Fluxible

여기에 이미지 설명 입력

Flux와의 채팅

React : Hey Action, 누군가 “Save Cour se”버튼입니다.

액션 : 감사합니다. React! 디스패처에 액션 생성자를 등록 했으므로 디스패처는 관심있는 모든 상점에 알립니다.

Dispatcher : 저장되는 과정에 대해 누가 신경 쓰는지 보여주세요. 아! 스토어에서 저에게 콜백을 등록한 것 같습니다. 알려 드리겠습니다.

Store : 운영자 님 안녕하세요! 업데이트 해주셔서 감사합니다! 보내 주신 페이로드로 데이터를 업데이트하겠습니다. 그런 다음 관심있는 React 구성 요소에 대한 이벤트를 생성합니다.

React : Ooo! 상점에서 빛나는 새로운 데이터! 이를 반영하도록 UI를 업데이트하겠습니다!


Flux API


register (함수 콜백) –“이봐, 운영자 님, 작업이 발생하면 저를 실행하십시오. -Store “

unregister (string id) –“이봐, 운영자 님,이 작업에 대해 걱정하지 마세요. -Store “

waitFor (array ids) –“먼저이 스토어를 업데이트하세요. –Store “

dispatch (객체 페이로드) -“이봐, 운영자 님,이 작업에 대해 매장에 알려주세요. . -Action”

isDispatching () –“지금 콜백을 보내느라 바쁩니다.”

그래서 우리가 생각하는 질문은

그래서 Flux는 Publish-Subscribe 모델인가요?

정답이 아닙니다.

두 가지 방식이 다릅니다.

1. 모든 페이로드가 등록 된 모든 콜백으로 전달됩니다.

2. 콜백은 다른 콜백을 기다릴 수 있습니다.

요약

Flux 단방향 데이터 흐름의 패턴입니다. Actions encapsulate events Dispatcher는 콜백을 보관하는 중앙 허브입니다. Stores hold app state 많은 구현

Comments

  • 내 첫 번째 문제 그 상태는 응용 프로그램이 원격 API 엔티티의 다른 데이터를 가질 수 있도록 허용합니까? :-/
  • 상태가 허용한다는 것은 무엇을 의미합니까? 변경 사항을 내보내는 곳마다 React View를 호출하고 상태 변경 메서드를 다시 호출합니다.
  • 플럭스로 애플리케이션을 빌드한다는 것을 인정합니다. API를 다룬 다음 매장 내부에 데이터를 저장합니다. 사용자가 원격 데이터를 수정하면 어떻게됩니까? 클라이언트와 서버 모두 차이가있을 것입니다.
  • 이제 그 이유를 어디서 찾을 수 있습니다. 모든 디스패처와 상점이 앞으로보기 만하면 ' 작업보기를 직접 업데이트 할 수 없습니다.중개인이있는 이유
  • @MuhammadUmer : Dispatcher는 응용 프로그램 용이고 저장소는 응용 프로그램의 구성 요소를 기반으로하므로 중복성을 제거하기 위해 중개자가 도입되었습니다.

답변

간단한 예 찾기 ( https://github.com/facebook/flux/tree/master/examples/flux-todomvc/ ), “저장소는 응용 프로그램 내의 특정 도메인에 대한 응용 프로그램 상태를 관리합니다.”즉, 응용 프로그램의 상태에 대한 데이터와이를 변경하기위한 모든 코드가 포함되어 있습니다. Dispatcher에서 새 업데이트가있을 때마다 모든 상점에서이를보고 이에 대한 응답으로 데이터를 업데이트하는 방법을 결정한 다음 데이터가 변경되었음을 뷰에 알립니다. 예에서 Stores에는 “unseen threads list”(디스패처가 새 메시지가 도착했거나 이전 메시지를 읽었 음을 알리고보기에 메시지 스레드가 사용자에게 표시됨) 및 “현재 재생 시간 및 더 기술적으로는 Dispatcher에 콜백을 등록하여 업데이트를 수신 한 다음 데이터 상태가 변경 될 때 뷰에 알림을 보내는 프레임 워크의 중간 계층입니다. (그러면 뷰가 작업을 디스패처로 다시 보낼 수 있습니다.) 각 Store가 Dispatcher에 콜백을 등록하고 이벤트를 뷰에 브로드 캐스트하는 추상 인터페이스가 구현되어 있지만 각 Store는 구체적인 방식으로 특정 도메인을 나타내는 것처럼 보입니다. (반례가 있습니까?)

답변

저장소는 애플리케이션 상태와 복잡한 논리를 저장하는 코드 영역입니다. 그 이유는 여러보기가 동일한 데이터를 사용할 가능성이 높지만 다른 방식으로 표시하거나 특정 도메인에 대한 일부 데이터 만 표시하기 때문입니다. 예를 들어 사용자가 로그인하면 이름, 성, 이메일, 사진, 도시, 주소 번호, 전화 번호 등을 받게됩니다.이 정보는 별도의보기에 표시됩니다. 뷰간에 데이터를 복제하는 대신 사용자에 대한 데이터를 저장하는 UserStore라는 하나의 저장소를 사용할 수 있습니다. 이것은 저장된 로직이나 데이터를 변경해야 할 때마다 “변경할 수있는 한 곳”을 제공함으로써 시스템을 단순화합니다. Store를 사용하는 다른 이유가 많이 있지만 이것이 제가 생각하는 가장 분명한 이유입니다.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다