Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Kakšne spremembe so bile uvedene v MVVMcross V3 glede konstrukcije ViewModel


Kakšne spremembe so bile uvedene v MVVMcross V3 glede konstrukcije ViewModel


V MVVMcross V3 je bilo uvedenih več pomembnih sprememb glede konstrukcije ViewModel, katere cilj je izboljšati pristnost in uporabnost za razvijalce. Tu so ključne spremembe:

1. Vbrizgavanje odvisnosti na podlagi konstruktorja: Ena glavnih sprememb je bila uvedba vbrizgavanja odvisnosti na osnovi konstruktorja. To je razvijalcem omogočilo, da vbrizgajo odvisnosti neposredno v konstruktor ViewModel, kar olajša upravljanje odvisnosti in izboljšanje prisrčnosti. Pred tem so bile odvisnosti pogosto upravljane z drugimi sredstvi, ki bi lahko bila manj preprosta.

2. Navigacija z uporabo tipkanih navigacijskih razredov: MVVMcross V3 je predstavil nov navigacijski sistem, ki je uporabljal tipljive navigacijske razrede. To je pomenilo, da bi lahko razvijalci namesto neposredno krmarjenja po pogledih krmarili med vidnimi modeli z uporabo močno tipanih razredov. Ta pristop je poenostavil navigacijo med platformami, tako da je abstrahiral podrobnosti, specifične za platformo.

3. Shranjevanje in ponovno nalaganje stanja ViewModel za nagrobnike: Druga pomembna značilnost, uvedena v V3, je bila možnost varčevanja in ponovnega nalaganja stanja ViewModel. To je bilo še posebej koristno za ravnanje s scenariji "nagrobno", kjer lahko operacijski sistem zaradi omejitev pomnilnika prekine aplikacijo, nato pa se obnovi, ko se uporabnik vrne vanj. Shranjevanje stanja ViewModel bi lahko aplikacije ohranile svoje trenutno stanje, tudi potem, ko so se končale in znova zagnale.

4. Navigacijski parametri, prešli na metodo `init ()`: V starejših različicah MVVMcross so bili navigacijski parametri preneseni neposredno na konstruktor ViewModel. Vendar pa so bili ti parametri namesto tega preneseni na metodo `init ()`. Ta sprememba je omogočila, da se konstruktor uporablja izključno za vbrizgavanje odvisnosti, zaradi česar je koda čistejša in bolj vzdržna. Metoda `init ()` je postala kraj, kjer so bili obdelani navigacijski parametri, kar omogoča bolj prilagodljivo logiko inicializacije.

Na splošno so te spremembe v MVVMcross V3 omogočile bolj strukturiran in vzdržen način konstrukcije in upravljanja vidnih modelov, kar je izboljšalo celotno razvojno izkušnjo za uporabo v več platformah.

Navedbe:
[1] https://www.mvvmcross.com/documentation/fundamentals/viewModel-lifecycle
[2] https://github.com/mvvmcross/mvvmcross/releases
[3] https://www.reddit.com/r/csharp/comments/12akrcw/mvvm_question_how_do_you_manage_the_interaction/
[4] https://www.mvvmcross.com/documentation/advanced/customizing-using-app-and-setup
[5] https://www.mvvmcross.com/blog/
[6] https://softwareengineering.stackexchange.com/Questions/389086/do-we-need-models-if-we-e-are -Using-viewModels
[7] https://stackoverflow.com/questions/16723078/mvvmcross-does-showViewModel-always-consstruct-new-Instances
[8] https://stackoverflow.com/questions/39587974/changes-in-mvvmcross----------indings
[9] https://www.mvvmcross.com/documentation/fundamentals/navigation
[10] https://www.mvvmcross.com/documentation/fundamentals/data----
[11] https://github.com/mvvmcross/mvvmcross/blob/develop/changelog.md