Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Melyek a fő különbségek az MVVMCross 4.x és a 3.x között a ViewModel életciklusával kapcsolatban


Melyek a fő különbségek az MVVMCross 4.x és a 3.x között a ViewModel életciklusával kapcsolatban


Az MVVMCross 3.x és 4.x verzióinak számos különbsége van a ViewModel életciklusában, elsősorban a ViewModels felépítésének, inicializálásának és kezelésének középpontjában.

mvvmcross 3.x

Az MVVMCross 3.x -ben a ViewModel életciklus egy CIRS néven ismert szekvenciát követ: Construction, init (), reloadState () és start (). Ezt a sorozatot a ViewModels inicializálására és kezelésére használják. Itt van egy bontás:

- Építés: A ViewModel -t a NOB tartály segítségével instantálják, lehetővé téve a függőség injekcióját. Itt a szolgáltatások és más függőségek injektálnak a ViewModelbe.
- init (): Ezt a módszert a navigációs paraméterek inicializálására használják. Ezt az építkezés után hívják, és ahol általában beállítaná a ViewModelhez továbbított kezdeti adatot vagy paramétert.
- ReloadState (): Ez a módszer felelős a ViewModel állapotának rehidrálásáért a sírok után, amely akkor fordul elő, amikor az alkalmazást felfüggesztik, majd az alacsony memóriafeltételek miatt folytatják.
- Start (): Ezt a módszert akkor hívják, ha az inicializálás és a rehidráció befejeződik. Általában a folyamatban lévő műveletek vagy feladatok megkezdésére használják.

mvvmcross 4.x

Az MVVMCross 4.x továbbra is használja a CIRS szekvenciát, de bevezet néhány változtatást és fejlesztést:

- Az építkezés változatlan marad, a NOB felhasználásával a függőség injekciójára.
- Az init () továbbra is inicializálja a navigációs paramétereket, de most már rugalmasabb, lehetővé téve a gépelt navigációs paramétereket.
- A ReloadState () továbbra is kezeli az állapot rehidrációját a sírok után.
- A start () hasonló, de ritkábban használható a aszinkron inicializálási módszerek bevezetése miatt.

Az MVVMCross 4.x jelentős változása a gépelt navigációs paraméterek folyamatos támogatása, amely lehetővé teszi a viewModels közötti strukturáltabb adatok átadását. Ezenkívül az MVVMCross 4.x alapot ad a navigáció és az életciklus -kezelés jövőbeni javításaihoz, amelyeket tovább javítanak az MVVMCross 5.x.

kulcsfontosságú különbségek

- Navigációs paraméterek: Az MVVMCross 3.x a navigációs paramétereket közvetlenül a `init ()` módszerre továbbítja, míg az MVVMCross 4.x támogatja a gépelt navigációs paramétereket, megkönnyítve a komplex adatok átadását a ViewModels között.
- Az életciklus rugalmassága: Az MVVMCross 4.x nagyobb rugalmasságot biztosít a ViewModel LifeCycles kezelésében, különösen az aszinkron inicializálási módszerek bevezetésével.
- Sírstoning támogatás: Mindkét verzió támogatja a sírokat, de az MVVMCross 4.x továbbra is finomítja ezt a folyamatot, biztosítva, hogy a ViewModels hatékonyan megmentse és helyreállítsa állapotát.

Összességében az MVVMCross 4.x a 3.x -ben létrehozott alapokra épül, a navigáció, az életciklus -kezelés és a rugalmasság javításával az összetett adatok és az aszinkron műveletek kezelésében.

Idézetek:
[1] https://www.mvvmcross.com/documentation/fundamentals/viewmodel-lifecycle
[2] https://stackoverflow.com/questions/49322704/mvvmcross-view-model-lifecycle-restore-not-not-not-
[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-wen-viewepea
[5] https://stackoverflow.com/questions/29372480/mvvmcross-viewmodel-life-cycle
[6] https://www.mvvmcross.com/documentation/advanced/customizing-using-app-andsetup
[7] https://www.mvvmcross.com/documentation/tutorials/tipcalc/a-note-bout-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