Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Mitkä ovat tärkeimmät erot MVVMCross 4.x: n ja 3.x: n välillä ViewModel -elinkaaren suhteen


Mitkä ovat tärkeimmät erot MVVMCross 4.x: n ja 3.x: n välillä ViewModel -elinkaaren suhteen


MVVMCross -versioilla 3.x ja 4.x on useita eroja ViewModel -elinkaaresta, joka keskittyy ensisijaisesti siihen, kuinka näkymämallit rakennetaan, alustetaan ja hallitaan.

mvvmcross 3.x

MVVMCross 3.x: ssä ViewModel -elinkaari seuraa sekvenssiä, joka tunnetaan nimellä CIRS: Construction, init (), ReloadState () ja Start (). Tätä sekvenssiä käytetään näkymämallien alustamiseen ja hallintaan. Tässä on erittely:

- Rakentaminen: Näkymämalli toteutetaan käyttämällä IOC -astiaa, mikä mahdollistaa riippuvuusinjektion. Täällä palvelut ja muut riippuvuudet injektoidaan ViewModeliin.
- init (): Tätä menetelmää käytetään navigointiparametrien alustamiseen. Sitä kutsutaan rakentamisen jälkeen ja olet tyypillisesti määrittäessäsi kaikki näkymämallille siirretyt alkuperäiset tiedot tai parametrit.
- ReloadState (): Tämä menetelmä on vastuussa ViewModel -tilan nuhdemäärästä haudan jälkeen, joka tapahtuu, kun sovellus keskeytetään ja jatkuu sitten alhaisten muistiolosuhteiden vuoksi.
- Käynnistä (): Tätä menetelmää kutsutaan, kun alusttaminen ja nesteytyminen ovat täydellisiä. Sitä käytetään tyypillisesti käynnissä olevien toimintojen tai tehtävien aloittamiseen.

mvvmcross 4.x

MVVMCROSS 4.X käyttää edelleen CIRS -sekvenssiä, mutta tuo joitain muutoksia ja parannuksia:

- Rakentaminen pysyy samana käyttämällä IOC: ta riippuvuusinjektioon.
- init () alustaa edelleen navigointiparametrit, mutta on nyt joustavampi, mikä mahdollistaa kirjoitetut navigointiparametrit.
- ReloadState () jatkaa valtion nesteytyksen käsittelemistä haudan jälkeen.
- Käynnistä () on samanlainen, mutta sitä voidaan käyttää harvemmin asynkronisempien alustusmenetelmien käyttöönoton vuoksi.

MVVMCROSS 4.X: n merkittävä muutos on jatkuva tuki kirjoitettuille navigointiparametreille, mikä mahdollistaa rakenteellisemman datan kulkevan näkymämodelien välillä. Lisäksi MVVMCROSS 4.X luo perustan navigoinnin ja elinkaaren hallinnan tuleville parannuksille, joita parannetaan edelleen MVVMCross 5.X: ssä.

keskeiset erot

- Navigointiparametrit: MVVMCross 3.x siirtää navigointiparametrit suoraan `init () -menetelmään, kun taas MVVMCROSS 4.X tukee tyypillisiä navigointiparametreja, mikä helpottaa monimutkaisten tietojen välittämistä ViewModels -välillä.
- elinkaaren joustavuus: MVVMCross 4.X tarjoaa enemmän joustavuutta näkymämallin elinkaarien käsittelyssä, etenkin asynkronisten alustusmenetelmien käyttöönotolla.
- Tombstoning -tuki: Molemmat versiot tukevat haudasta, mutta MVVMCross 4.X jatkaa tätä prosessia tarkentamaan, varmistaen, että ViewModels voi tehokkaasti pelastaa ja palauttaa tilansa.

Kaiken kaikkiaan MVVMCROSS 4.X perustuu 3.x perustettuun säätiöön parantamalla navigointia, elinkaaren hallintaa ja joustavuutta monimutkaisten tietojen ja asynkronisten toimintojen käsittelyssä.

Viittaukset:
[1] https://www.mvvmcross.com/documentation/fundamentals/viewModel-lifecycle
[2] https://stackoverflow.com/questions/49322704/mvmcross-view-model-lifecycle-restore-not-working
.
[4] https://stackoverflow.com/questions/71959649/does-mvvmcross-have-a-built-in-message-for-viewmodel-to-tell-view-when-viewappea
[5] https://stackoverflow.com/questions/29372480/mvmcross-viewModel-life-cycle
[6] https://www.mvvmcross.com/documentation/advanced/customizing-using-app-and-setup
.
[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
.
[12] https://github.com/mvvmcross/mvvmcross/issues/2738