[React] Flux Pattern
글 작성자: 망고좋아
반응형
🎯 Flux Pattern
- 2014년에 Facebook에서 제안한 웹 애플리케이션 아키텍처 패턴
- Unidirectional(단방향) data flow를 활용해서 데이터의 업데이트와 UI 반영을 단순화한다.
- React의 UI 패턴인 합성 컴포넌트와 어울리도록 설계가 되었다.
- redux, react-redux 라이브러리의 Prior art
📝 Flux Pattern vs MVC Pattern
- MVC 패턴에서는, View에서 특정 데이터를 업데이트하면 연쇄적인 업데이트가 일어난다. 앱이 커지면 업데이트의 흐름을 따라가기 힘들다. 즉, 업데이트의 근원을 추적하기 힘들다.
- Flux는 하나의 Action이 하나의 Update만을 만들도록 한다.
- 특정 유저의 인터렉션이 여러 UI 컴포넌트가 사용하는 데이터에 영향을 줄 때, MVC만으로는 앱의 복잡도를 낮추거나 업데이트의 흐름을 따라가기 어렵다.
- data와 업데이트가 한 방향으로 흐르므로 UI의 업데이트를 예측하기 쉽다.
- 하나의 유저 인터렉션에 여러 Action을 생성할 수 있다. 예를 들어 특정 버튼을 클릭했을 때 여러 개의 액션을 만들 수 있다.
📝 Flux 구조
- Action -> Dispatcher -> Store -> View 순으로 데이터가 흐른다.
- store는 미리 dispatcher에 callback을 등록해, 자신이 처리할 action을 정의한다.
- action creator는 action을 생성하여 dispatcher로 보낸다.
- dispatcher는 action을 store로 넘긴다.
- store는 action에 따라 데이터를 업데이트 후, 관련 view로 변경 이벤트 발생한다.
- View는 그에 따라 데이터를 다시 받아와 새로운 UI를 만든다.
- 유저 인터렉션이 발생하면 View는 action을 발생한다.
반응형
'프로그래밍 > React' 카테고리의 다른 글
[React Redux] React Redux란? (0) | 2022.01.17 |
---|---|
[Redux] 리덕스 데이터 흐름 (0) | 2022.01.17 |
[React] 상태관리란 무엇인가? (0) | 2022.01.16 |
[styled-components] styled-components란? (0) | 2022.01.11 |
[React] 리액트 앱에서의 스타일링 방법 (0) | 2022.01.11 |
댓글
이 글 공유하기
다른 글
-
[React Redux] React Redux란?
[React Redux] React Redux란?
2022.01.17 -
[Redux] 리덕스 데이터 흐름
[Redux] 리덕스 데이터 흐름
2022.01.17 -
[React] 상태관리란 무엇인가?
[React] 상태관리란 무엇인가?
2022.01.16 -
[styled-components] styled-components란?
[styled-components] styled-components란?
2022.01.11