Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Kokie pakeitimai buvo įvesti „MVVMCross V3“ dėl „ViewModel Construction“


Kokie pakeitimai buvo įvesti „MVVMCross V3“ dėl „ViewModel Construction“


„MVVMCross V3“ buvo įdiegti keli reikšmingi pakeitimai, susiję su „ViewModel Construction“, kuriais siekiama pagerinti kūrėjų bandymą ir tinkamumą naudoti. Čia yra pagrindiniai pakeitimai:

1. Konstruktorių priklausomybės injekcija: vienas iš pagrindinių pakeitimų buvo priklausomybės injekcijos konstruktoriams įvedimas. Tai leido kūrėjams įšvirkšti priklausomybes tiesiai į „ViewModel“ konstruktorių, todėl buvo lengviau valdyti priklausomybes ir pagerinti išbandomumą. Prieš tai priklausomybės dažnai buvo valdomos kitomis priemonėmis, kurios gali būti ne taip paprastos.

2. Navigacija naudojant įvestas navigacijos klases: „MVVMCross V3“ pristatė naują navigacijos sistemą, kurioje buvo naudojamos spausdintos navigacijos klasės. Tai reiškė, kad užuot tiesiogiai naršydami į „Views“, kūrėjai galėjo naršyti tarp „ViewModels“ naudodamiesi stipriai įvestomis klasėmis. Šis požiūris supaprastino kryžminio platformos naršymą, išsiaiškindamas konkrečios platformos detales.

3. Išsaugoti ir perkrauti „ViewModel“ būseną „Tombstoning“: Kita reikšminga V3 įvesta funkcija buvo galimybė išsaugoti ir perkrauti „ViewModel“ būseną. Tai buvo ypač naudinga tvarkant „Tombstoning“ scenarijus, kai programą gali nutraukti operacinė sistema dėl atminties apribojimų, o po to atkurta, kai vartotojas grįš į ją. Išsaugant „ViewModel“ būseną, programos galėtų išlaikyti savo dabartinę būseną net ir po to, kai jos buvo nutrauktos ir paleistos iš naujo.

4. Navigacijos parametrai perduoti į „init ()` metodą: senesnėse „MVVMCross“ versijose naršymo parametrai buvo perduoti tiesiai į „ViewModel“ konstruktorių. Tačiau pradedant nuo V3, šie parametrai buvo perduoti „init ()` metodui. Šis pakeitimas leido konstruktoriui naudoti tik priklausomybės injekcijai, todėl kodas yra švaresnis ir prižiūrimas. „INIT ()` Metodas tapo vieta, kur buvo apdoroti navigacijos parametrai, leidžiantys lanksčiau inicijuoti logiką.

Apskritai, šie MVVMCROSS V3 pakeitimai suteikė labiau struktūrizuotą ir prižiūrimą būdą konstruojant ir valdant „ViewModels“, sustiprinant bendrą įvairių platformų programų plėtros patirtį.

Citatos:
[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 ir-setup
[5] https://www.mvvmcross.com/blog/
[6] https://softwareEngineering.stackexchange.com/questions/389086/do-we-reed-models-if-we-are-using-viewmodels
[7] https://stackoverflow.com/questions/16723078/mvvmcross-does-showviewmodel-always-construct-new-instances
[8] https://stackoverflow.com/questions/39587974/changes-in-mvvmcross-dingings
[9] https://www.mvvmcross.com/documentation/fundamentals/navigation
[10] https://www.mvvmcross.com/documentation/fundamentals/data-binding
[11] https://github.com/mvvmcross/mvvmcross/blob/develop/changelog.md