MVVMCROSS V3 -s võeti ViewModel Constructioni osas kasutusele mitmeid olulisi muudatusi, mille eesmärk oli parandada arendajate testitavust ja kasutatavust. Siin on peamised muudatused:
1. konstruktoripõhine sõltuvus süstimine: üks peamisi muudatusi oli konstruktoripõhise sõltuvuse süstimise kasutuselevõtt. See võimaldas arendajatel süstida sõltuvusi otse ViewModeli konstruktorisse, muutes sõltuvuse haldamise ja testitavuse parandamise lihtsamaks. Enne seda juhiti sõltuvusi sageli muude vahenditega, mis võivad olla vähem sirgjoonelised.
2. navigeerimine kirjutatud navigeerimisklasside abil: MVVMCROSS V3 tutvustas uut navigatsioonisüsteemi, mis kasutas trükitud navigeerimisklasse. See tähendas, et otse vaadetele navigeerimise asemel said arendajad liikuda vaatemodellide vahel, kasutades tugevalt tüüpilisi klasse. See lähenemisviis lihtsustas platvormidevahelist navigeerimist, lisades platvormipõhised üksikasjad.
3. ViewModel'i oleku salvestamine ja uuesti laadimine haude jaoks: V3 -s oli veel üks oluline funktsioon ViewModeli oleku salvestamise ja uuesti laadimise võime. See oli eriti kasulik "haude" stsenaariumide käitlemisel, kus mälupiirangute tõttu võib opsüsteem rakenduse lõpetada, ja seejärel taastada, kui kasutaja selle juurde naaseb. ViewModeli oleku säästmisega võiksid rakendused säilitada oma praeguse oleku isegi pärast lõpetamist ja taaskäivitamist.
4. navigeerimisparameetrid, mis on edastatud `init ()` meetodile: MVVMcrossi vanemates versioonides viidi navigeerimisparameetrid otse ViewModeli konstruktorile. Alustades V3 -ga, kanti need parameetrid selle asemel meetodile `init ()`. See muudatus võimaldas konstruktoril kasutada ainult sõltuvuse süstimiseks, muutes koodi puhtamaks ja hooldatavamaks. Meetodist "init ()" sai navigeerimisparameetrite töötlemise koht, mis võimaldab paindlikumat lähtestamise loogikat.
Üldiselt andsid need muutused MVVMCross V3-s struktureeritud ja hooldatavama viisi vaatemodellide ehitamiseks ja haldamiseks, suurendades platvormidevaheliste rakenduste üldist arengukogemust.
Tsitaadid:]
[2] https://github.com/mvvmcross/mvvmcross/releasses
]
]
[5] https://www.mvvmcross.com/blog/
]
]
[8] https://stackoverflow.com/questions/39587974/changes-in-mvvmcross-bindings
[9] https://www.mvvmcross.com/documentation/fundamentals/navigation
[10] https://www.mvvmcross.com/documentation/fundamentals/data-binding
[11] https://github.com/mvvmcross/mvvmcross/blob/develovel/changelog.md