FLUX구조의 흐름은 이해가 가지만 정확히 어떤 함수가 무슨 역활을 하며 어떻게 데이터를 넘겨주는지 이해가 되지 않아, 이해를 돕는 좋은 카툰이 있어서 이걸 보면서 하나하나 되짚어 보려고한다.
그림이 무척이나 귀엽다 ㅎㅎㅎ
Name : Dispacher
Work : 액션생성자로 부터 액션이 넘어오면 여러 스토어에 액션을 보낸다.
contents : callback function
Next : 모든 스토어로 콜백함수 보내짐. 스토어는 일단 모든 액션을 받은 뒤 처리할지 말지 결정함.
Example : 전화교환대 교환원
=> 예를 들어 전화교환대에 있는 모든 전화들과 연결이 가능해서 전보가 온곳에 알려줄 수 있다. 디스패쳐도 마찬가지로 액션을 보낼 수 있는 모든 store를 가지고 있고,액션 생성자로부터 액션이 넘어오면 여러 스토어에 액션을 보낸다.
Name : Store
Work : switch statement를 사용해서 처리할 액션과 무시할 액션을 결정.
contents : switch Statement
Next : 스토어에 상태 변경을 완료하고 나면, 변경 이벤트(change event)를 내보낸다. 이 이벤트는 컨트롤러 뷰(the controller view)에 상태가 변경했다는 것을 알려주게 된다.
Plus : 스토어에는 setter가 존재하지 않으므로, 정해진 절차인 액션생성자/디스패쳐 파이프라인을 거쳐서 액션을 보내야 한다.
Example : 정부관료
=> 모든 상태 변경은 반드시 스토어에 의해서 결정되어야만 하며, 상태 변경을 위한 요청을 스토어에 직접보낼 수 없다.
name : VIEW
Work : 상태를 가져오고 유저에게 보여주고 입력받을 화면을 렌더링하는 역할. 애플리케이션 내부에 대해서는 아는 것이 없지만, 받은 데이터를 처리해서 사람들이 이해할 수 있는 포맷(HTML)으로 어떻게 바꾸는지 알고 있다.
Example : 발표자
=> 받아온 모스부호와 암호들을 사람들에게 설명하는 발표자 같은 역활이다.
1. 뷰는 Action 생성자에게 Action을 준비하라고 말한다.
2. 액션 생성자는 액션함수를 만들어 Dispacher에게 전달한다.
3. 디스패쳐는 액션함수를 받아 순서에 맞게 STORE에게 전달한다. 각 스토어는 모든 액션을 받는다.
4. 스토어는 TYPE에 맞는 액션만 받아 변경사항을, 자신을 구독하고 있는 Controller View에게 전달한다.
5. 컨트롤 뷰는 자신아래의 모든 뷰에게 새로운 상태에 맞게 랜더링하라고 알려준다!
Action
Dispatcher
Store
View
아따 겁나 이해하는데 오래걸림.. 내가 짠 코드 매칭시키는 포스팅 다음에 올릴꺼임
◼ 참조 및 출처
[Flux로의 카툰 안내서 (이거 진짜 도움 많이됨 ㅜㅜ! )]
https://bestalign.github.io/translation/cartoon-guide-to-flux/