view가 아주 많다.
양방향 처리가 필요하다.
슈퍼 울트라 컨트롤러가 생긴다.
view간의 계층처리가 필요하다.
복잡한 view, model 관계 단순화
view 계층처리로 쉽고 효율적인 DOM 처리.
데이터 바인딩
MVVM
Flux 아키텍처 => React에서 사용됨.
백엔드에서는 주로 MVC 사용.
=> 프론트엔드에서는 MVC가 잘못되거나 못쓰이는건 아니고 그대로 활용하기 보다는 조금 더 변형해서 활용할 필요가 있는 것이다.
단방향으로 흐름을 제어하며 동작
대부분 상태관리 라이브러리는 Flux 아키텍처를 따라서 만들거나 스토어가 바뀌면 View를 렌더링하는 원리를 기반으로 동작한다.
Single source of truth
동일한 데이터는 항상 같은 곳에서 가지고 와야 한다는 의미.
즉, Redux에는 데이터를 저장하는 Store라는 단 하나뿐인 공간이 있음과 연결이 되는 원칙.
State is read-only
상태는 읽기 전용이라는 뜻이다.
React에서 상태갱신함수로만 상태를 변경할 수 있었던 것처럼, Redux의 상태도 직접 변경할 수 없다.
즉, Action 객체가 있어야만 상태를 변경할 수 있음과 연결되는 원칙.
Changes are made with pure functions
변경은 순수함수로만 가능하다는 뜻이다.
상태가 엉뚱한 값으로 변경되는 일이 없도록 순수함수로 작성되어야 하는 Reducer와 연결되는 원칙.