왜 상태관리가 필요한가?

위젯 A 에 버튼이있고, 누르면 카운트가 증가한다. 이때 위젯 B에 증가한 값을 보여주고자 할때, 상태관리가 없다면 위젯C에 카운트와 증가하는 함수가 있어야한다. 또한 B까지 내려갈때 또 다른 위젯은 count 정보를 갖고있어야 하는 불편함이 있다.

image.png

MVVM에서 view model은 최대한 멍청하게 해야한다.

provider 같은 상태를 적용하더라도, view (ui) → view model에 넘기는건 파라미터로 넘기는 것이 좋다. 각 뷰에서 1:1로 매칭된 view model에 넘기는 방향으로 개발해어야 한다.

해당 view와 다른 view에서는 전역적인 provider를 사용하여 값의 접근은 가능하도록 하되, 해당 view와 관련된 view model에서는 파라미터를 넘겨받는 패턴이 좋다.

직접 viewModel에서 provider 값을 끌어오게 된다면,

연관된 부분을 찾기 힘들다.

예를들면 생성자를 만드는 행위처럼 개발되어야 해당 생성자는 필요한 값을 무조건 넣어줘야 하는 그런 형태로 바뀌어야 추후 유지보수면에서 좋다는 것과 같은 이치이다.