Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Aké sú hlavné rozdiely medzi MVVMCross 4.x a 3.x týkajúce sa životného cyklu ViewModel


Aké sú hlavné rozdiely medzi MVVMCross 4.x a 3.x týkajúce sa životného cyklu ViewModel


Verzie MVVMCross 3.x a 4.x majú niekoľko rozdielov týkajúcich sa životného cyklu ViewModel, primárne sústredené na to, ako sú konštruované, inicializované a riadené pohľady.

mvvmcross 3.x

V MVVMCross 3.x sa životný cyklus ViewModel sleduje sekvencia známa ako CIRS: Construction, init (), ReloadState () a Start (). Táto sekvencia sa používa na inicializáciu a správu ViewModels. Tu je porucha:

- Konštrukcia: ViewModel je inštantovaný pomocou kontajnera IOC, čo umožňuje injekciu závislosti. To je miesto, kde sa do ViewModel injikujú služby a ďalšie závislosti.
- init (): Táto metóda sa používa na inicializáciu navigačných parametrov. Nazýva sa po výstavbe a je to miesto, kde by ste zvyčajne nastavili všetky počiatočné údaje alebo parametre odovzdané na ViewModel.
- ReloadState (): Táto metóda je zodpovedná za rehydratáciu stavu ViewModel po Tombstoningu, ku ktorému dochádza, keď je aplikácia pozastavená a potom obnovená v dôsledku nízkych podmienok pamäte.
- Start (): Táto metóda sa nazýva pri úplnom inicializácii a rehydratácii. Zvyčajne sa používa na začatie prebiehajúcich operácií alebo úloh.

mvvmcross 4.x

MVVMCross 4.x naďalej používa sekvenciu CIRS, ale predstavuje niektoré zmeny a vylepšenia:

- Konštrukcia zostáva rovnaká a používa IOC na vstrekovanie závislosti.
- init () stále inicializuje navigačné parametre, ale teraz sú flexibilnejšie, čo umožňuje zadané navigačné parametre.
- ReloadState () po tombstoningu naďalej zvládne rehydratáciu štátu.
- Start () je podobný, ale môže sa používať menej často v dôsledku zavedenia viac asynchrónnych metód inicializácie.

Významnou zmenou v MVVMCross 4.x je pokračujúca podpora typovaných navigačných parametrov, ktorá umožňuje štruktúrovanejšie údaje prechádzajúce medzi módami. Okrem toho MVVMCross 4.x kladie základy pre budúce vylepšenia v oblasti navigácie a správy životného cyklu, ktoré sa ďalej vylepšujú v MVVMCross 5.x.

Kľúčové rozdiely

- Parametre navigácie: MVVMCross 3.x prechádza navigačné parametre priamo do metódy `init ()`, zatiaľ čo MVVMCross 4.x podporuje typované navigačné parametre, čo uľahčuje odovzdávanie komplexných údajov medzi spoločnosťou ViewModels.
- Flexibilita životného cyklu: MVVMCross 4.x poskytuje väčšiu flexibilitu pri manipulácii s životnými životnými cyklami ViewModel, najmä zavedením asynchrónnych metód inicializácie.
- Podpora Tombstoning: Obe verzie podporujú Tombstoning, ale MVVMCross 4.x tento proces naďalej zdokonaľuje, čo zabezpečuje, že pohľady môžu efektívne zachrániť a obnoviť svoj stav.

Celkovo MVVMCross 4.x vychádza z nadácie založenej v 3.x zlepšením navigácie, riadenia životného cyklu a flexibility pri riešení zložitých údajov a asynchrónnych operácií.

Citácie:
[1] https://www.mvvmcross.com/documentation/funmamentals/viewmodel-lifecycle
[2] https://stackoverflow.com/questions/49322704/MVVMcross-view-model-lifecycle-restore-denking
[3] https://stackoverflow.com/questions/15961664/ViewModel-lifecycle-wen-den-does-it-iget-disponec
[4] https://stackoverflow.com/questions/71959649/does-mvvmcross-have-a-built-in-message-for-viewmodel-to-tell-view-hen-viewappea
[5] https://stackoverflow.com/questions/29372480/mvvmcross-viewModel-Life-cycle
[6] https://www.mvvmcross.com/documentation/advanced/custoughing-using-app-and-setup
[7] https://www.mvvmcross.com/documentation/tutorials/tipcalc/a-note-about-athiews-and-wiewModels
[8] https://www.ramotion.com/blog/what-is-mvvm/
[9] https://www.mvvmcross.com/documentation/funmamentals/navigation
[10] https://www.mvvmcross.com/documentation/funmamentals/inversion-of-control-ioc
[11] https://www.mvvmcross.com/documentation/getting-started/mvvmcross-woreview
[12] https://github.com/mvvmcross/mvvmcross/issues/2738