Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Kokie yra pagrindiniai skirtumai tarp MVVMCROSS 4.x ir 3.X, susijusių su „ViewModel“ gyvavimo cikle


Kokie yra pagrindiniai skirtumai tarp MVVMCROSS 4.x ir 3.X, susijusių su „ViewModel“ gyvavimo cikle


„MVVMCross“ versijos 3.x ir 4.x turi keletą skirtumų, susijusių su „ViewModel“ gyvavimo cikle, daugiausia sutelktos į tai, kaip „ViewModels“ sukonstruoti, inicijuojami ir valdomi.

mvvmcross 3.x

„MVVMCross 3.x“ „ViewModel LifeCycle“ seka seka, vadinama CIRS: konstrukcija, init (), reloadstate () ir pradžios (). Ši seka naudojama inicijuoti ir valdyti „ViewModels“. Štai suskirstymas:

- Konstrukcija: „ViewModel“ akimirksniu naudojamas naudojant IOC konteinerį, leidžiantį įpurškti priklausomybę. Čia paslaugos ir kitos priklausomybės įšvirkščiamos į „ViewModel“.
- init (): Šis metodas naudojamas navigacijos parametrams inicijuoti. Jis vadinamas po konstrukcijos ir yra ten, kur paprastai nustatytumėte visus pradinius duomenis ar parametrus, perduotus „ViewModel“.
- „ReloadState“ (): Šis metodas yra atsakingas už „ViewModel“ būsenos pakartojimą po „Tombstoning“, kuris atsiranda, kai programa sustabdoma ir atnaujinama dėl žemų atminties sąlygų.
- Pradėti (): Šis metodas vadinamas, kai inicijavimas ir rehidratacija yra baigti. Paprastai jis naudojamas norint pradėti vykstančias operacijas ar užduotis.

mvvmcross 4.x

MVVMCross 4.x ir toliau naudoja CIRS seką, tačiau pristato keletą pakeitimų ir patobulinimų:

- Statyba išlieka ta pati, naudodama IOC priklausomybės injekcijai.
- init () vis dar inicijuoja navigacijos parametrus, tačiau dabar yra lankstesnis, leidžiantis įvesti navigacijos parametrus.
- Reloadstate () ir toliau tvarko valstybinę rehidrataciją po antkapio.
- Pradėti () yra panašus, tačiau gali būti naudojamas rečiau, nes įvedami labiau asinchroniniai inicijavimo metodai.

Reikšmingas MVVMCROSS 4.x pakeitimas yra nuolatinis spausdintų navigacijos parametrų palaikymas, kuris leidžia labiau struktūruoti duomenis, perduodamus tarp „ViewModels“. Be to, „MVVMCross 4.x“ sudaro pagrindą ateityje patobulinti navigacijos ir gyvavimo ciklo valdymą, kurie dar labiau patobulinti MVVMCross 5.x.

Pagrindiniai skirtumai

- Navigacijos parametrai: MVVMCROSS 3.x Priskiria navigacijos parametrus tiesiai į „init ()` metodą, o MVVMCROSS 4.x palaiko spausdintus navigacijos parametrus, todėl lengviau perduoti sudėtingus duomenis tarp „ViewModels“.
- „LifeCycle“ lankstumas: MVVMCROSS 4.x suteikia daugiau lankstumo tvarkant „ViewModel Lifecycle“, ypač įvedus asinchroninius inicijavimo metodus.
- „Tombstoning“ palaikymas: Abi versijos palaiko „Tombstoning“, tačiau „Mvvmcross 4.x“ ir toliau tobulina šį procesą, užtikrinant, kad „ViewModels“ galėtų efektyviai išsaugoti ir atkurti jų būseną.

Apskritai, „MVVMCross 4.x“ remiasi „3.x“ įkurta pagrindu, gerinant navigaciją, gyvenimo ciklo valdymą ir lankstumą tvarkant sudėtingus duomenis ir asinchronines operacijas.

Citatos:
[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-sisposed
[4] https://stackoverflow.com/questions/71959649/does-mvvmcross-have-a-built-in-sessage-for-viewmodel-toter-tell-view-wie-viewappea
[5] https://stackoverflow.com/questions/29372480/mvvmcross-viewmodel-life-cycle
[6] https://www.mvvmcross.com/documentation/advanced/customizing-using-app ir-setup
[7] https://www.mvvmcross.com/documentation/tutorials/TIPCALC/A-HO-NOTE-Aut-Views-and-ViewModels
[8] https://www.ramation.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