이전에 배웠던 MVC 패턴에서 가장 큰 단점인 양방향 데이터 흐름(의문점: 내가 이해한 MVC와 다르게 페이스북의 예시에서는 View에서도 데이터 흐름을 발생시킨다.)을 해결해보고자 페이스북에서 단방향 데이터 흐름으로 변경하고자 만든 패턴이다.
Flux는 Store
을 통해서 데이터를 관리하고 해당 Store의 변화를 감지하여 View
를 업데이트해주는데 여기서 Store에 영향을 미치는 것은 Action
-> Dispatcher
를 통해서만 가능하다는 사실을 기억하면 된다.
한가지 예시로 위의 상황에서 사용자가 +Add New
버튼을 클릭하게 되면 OnClickAddNew
액션이 발생하며 해당 액션은 Dispatcher로 전달되며 Store가 해당 액션을 위해 Dispatcher에 등록해둔 callback을 통해 Store에 전송된다. 그 후, 변경된 데이터에 의해 View가 업데이트 되는 방식이다.
Flux의 단방향 흐름이라는 것은 Action > Dispatcher > Store > View와 같은 일련의 작업을 통해서만 데이터가 관리된다는 것을 의미한다.