Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon ViewModel 라이프 사이클과 관련하여 MVVMCross 4.X와 3.X의 주요 차이점은 무엇입니까?


ViewModel 라이프 사이클과 관련하여 MVVMCross 4.X와 3.X의 주요 차이점은 무엇입니까?


MVVMCross 버전 3.x 및 4.x는 뷰 모델 수명주기와 관련하여 몇 가지 차이점을 가지고 있으며, 주로 뷰 모델이 구성, 초기화 및 관리되는 방식을 중심으로합니다.

mvvmcross 3.x

MVVMCross 3.X에서 ViewModel 라이프 사이클은 CIRS : Construction, init (), repoadstate () 및 start ()로 알려진 시퀀스를 따릅니다. 이 순서는 뷰 모델을 초기화하고 관리하는 데 사용됩니다. 다음은 고장입니다.

- 구성 : 뷰 모델은 IOC 컨테이너를 사용하여 인스턴스화하여 의존성 주입이 가능합니다. 이곳에서 서비스 및 기타 종속성이 뷰 모델에 주입됩니다.
-ING () :이 메소드는 탐색 매개 변수를 초기화하는 데 사용됩니다. 시공 후 호출되며 일반적으로 뷰 모델로 전달되는 초기 데이터 또는 매개 변수를 설정하는 곳입니다.
-ReloadState () :이 메소드는 묘비 후 뷰 모델의 상태를 재수 화하는 데 도움이되며, 이는 앱이 중단 된 후 메모리 조건이 낮아서 재개 될 때 발생합니다.
- 시작 () :이 메소드는 초기화 및 재수 화가 완료되면 호출됩니다. 일반적으로 진행중인 운영 또는 작업을 시작하는 데 사용됩니다.

mvvmcross 4.x

MVVMCross 4.X는 CIRS 시퀀스를 계속 사용하지만 몇 가지 변경 사항과 개선 사항을 소개합니다.

- 의존성 주입을 위해 IOC를 사용하여 구성은 동일하게 유지됩니다.
-ING ()는 여전히 내비게이션 매개 변수를 초기화하지만 이제 더 유연하여 유형화 된 탐색 매개 변수를 허용합니다.
-ReloadState ()는 묘비 후 상태 재수 화를 계속 처리합니다.
-Start ()는 비슷하지만 비동기 초기화 방법의 도입으로 인해 덜 자주 사용될 수 있습니다.

MVVMCross 4.X의 상당한 변화는 유형화 된 내비게이션 매개 변수에 대한 지속적인 지원으로, 뷰 모델 사이에 더 많은 구조화 된 데이터를 전달할 수 있습니다. 또한 MVVMCross 4.X는 MVVMCross 5.X에서 더욱 강화되는 내비게이션 및 수명주기 관리의 향후 개선을위한 토대를 마련합니다.

주요 차이점

- 내비게이션 매개 변수 : MVVMCross 3.X는 내비게이션 매개 변수를`init ()`메소드로 직접 전달하는 반면 MVVMCross 4.X는 입력 된 탐색 매개 변수를 지원하므로 뷰 모델간에 복잡한 데이터를 더 쉽게 전달할 수 있습니다.
- 라이프 사이클 유연성 : MVVMCROSS 4.X는 특히 비동기 초기화 방법을 도입하여 ViewModel 라이프 사이클을 처리하는 데 더 많은 유연성을 제공합니다.
- 묘비 지원 : 두 버전 모두 묘비를 지원하지만 MVVMCross 4.x는이 프로세스를 계속 개선하여 뷰 모델이 상태를 효과적으로 저장하고 복원 할 수 있도록합니다.

전반적으로 MVVMCross 4.X는 복잡한 데이터 및 비동기 운영을 처리 할 때 내비게이션, 수명주기 관리 및 유연성을 향상시켜 3.X로 설립 된 재단을 기반으로합니다.

인용 :
[1] https://www.mvvmcross.com/documentation/fundamentals/viewmodel-lifecycle
[2] https://stackoverflow.com/questions/49322704/mvvmcross-view-model-lifecycle-restore-not-working
[3] https://stackoverflow.com/questions/15961664/viewmodel-lifecycle-when-does-it-get-disposed
[4] https://stackoverflow.com/questions/71959649/does-mvvmcross-ave-built-inmessage-for-viewmodel-tell-view when-viewappea
[5] https://stackoverflow.com/questions/29372480/mvvmcross-viewmodel-life-cycle
[6] https://www.mvvmcross.com/documentation/advanced/customizing-using-app-and-setup
[7] https://www.mvvmcross.com/documentation/tutorials/tipcalc/a-note-about-views-and-viewmodels
[8] https://www.ramotion.com/blog/what-is-mvvm/
[9] https://www.mvvmcross.com/documentation/fundamentals/navigation
[10] https://www.mvvmcross.com/documentation/fundamentals/inversion-of-control-ioc
[11] https://www.mvvmcross.com/documentation/getting-started/mvvmcross-overview
[12] https://github.com/mvvmcross/mvvmcross/issues/2738