Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Kādas ir galvenās atšķirības starp MVVMCross 4.x un 3.x attiecībā uz ViewModel dzīves ciklu


Kādas ir galvenās atšķirības starp MVVMCross 4.x un 3.x attiecībā uz ViewModel dzīves ciklu


MVVMCROSS versijām 3.x un 4.x ir vairākas atšķirības attiecībā uz ViewModel dzīves ciklu, kas galvenokārt koncentrējas uz to, kā ViewModels tiek konstruēts, inicializēts un pārvaldīts.

mvvmcross 3.x

MVVMCROSS 3.X ViewModel dzīves cikls seko secībai, kas pazīstama kā Cirs: Construction, Init (), ReloadState () un start (). Šī secība tiek izmantota, lai inicializētu un pārvaldītu ViewModels. Lūk, sadalījums:

- Būvniecība: ViewModel tiek uzreiz, izmantojot SOK konteineru, ļaujot veikt atkarības injekciju. Šajā gadījumā skatījumā tiek ievadīti pakalpojumi un citas atkarības.
- init (): šo metodi izmanto, lai inicializētu navigācijas parametrus. To sauc par būvniecību, un tas ir tas, kur jūs parasti iestatāt visus sākotnējos datus vai parametrus, kas nodoti ViewModel.
- ReloadState (): Šī metode ir atbildīga par ViewModel stāvokļa rehidrēšanu pēc kapa veida, kas notiek, kad lietotne tiek apturēta un pēc tam atsākta zemas atmiņas apstākļu dēļ.
- Start (): šo metodi sauc, kad inicializēšana un rehidratācija ir pabeigta. Parasti to izmanto, lai sāktu jebkuras notiekošas darbības vai uzdevumus.

mvvmcross 4.x

MVVMCROSS 4.x turpina izmantot CIRS secību, bet ievieš dažas izmaiņas un uzlabojumus:

- Būvniecība paliek tāda pati, izmantojot SOK atkarības injekcijai.
- init () joprojām inicializē navigācijas parametrus, bet tagad ir elastīgāks, ļaujot drukātiem navigācijas parametriem.
- ReloadState () turpina rīkoties ar valsts rehidratāciju pēc kapa kapa.
- Start () ir līdzīgs, bet to var izmantot retāk, pateicoties vairāk asinhronu inicializācijas metožu ieviešanai.

Būtiskas izmaiņas MVVMCROSS 4.x ir pastāvīgs atbalsts drukātiem navigācijas parametriem, kas ļauj strukturētākus datus nodot starp ViewModels. Turklāt MVVMCROSS 4.x ir pamatots turpmākiem navigācijas un dzīves cikla pārvaldības uzlabojumiem, kas tiek vēl vairāk uzlaboti MVVMCross 5.x.

Galvenās atšķirības

- Navigācijas parametri: MVVMCROSS 3.X caurlaides navigācijas parametri tieši uz “init ()` metodi, savukārt MVVMCROSS 4.x atbalsta drukātos navigācijas parametrus, padarot to vieglāk nodot sarežģītus datus starp ViewModels.
- Dzīves cikla elastība: MVVMCROSS 4.x nodrošina lielāku elastību ViewModel dzīves ciklos, īpaši ar asinhrono inicializācijas metožu ieviešanu.
- Kapbstonēšanas atbalsts: abas versijas atbalsta kapa veidošanu, bet MVVMCROSS 4.x turpina uzlabot šo procesu, nodrošinot, ka ViewModels var efektīvi saglabāt un atjaunot savu stāvokli.

Kopumā MVVMCROSS 4.x balstās uz fondu, kas izveidots 3.x, uzlabojot navigāciju, dzīves cikla pārvaldību un elastību sarežģītu datu un asinhrono operāciju apstrādē.

Atsauces:
[1] https://www.mvvmcross.com/documentation/fundamentals/viewmodel-lifecycle
[2] https://stackoverflow.com/questions/49322704/mvvmcross-view-model-lifecycle-restore-ning-working
[3] https://stackoverflow.com/questions/15961664/viewmodel-lifecycle-when-does-it-get-disposed
[4] https://stackoverflow.com/questions/71959649/does-mvvmcross-have-a-built-in-message-for-viewmodel-tell-view-when-viewappeaapeaapea
[5] https://stackoverflow.com/questions/29372480/mvvmcross-viewmodel-life-cycle
[6] https://www.mvvmcross.com/documentation/advanced/customing-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