Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Kādas izmaiņas tika ieviestas MVVMCROSS V3 attiecībā uz ViewModel uzbūvi


Kādas izmaiņas tika ieviestas MVVMCROSS V3 attiecībā uz ViewModel uzbūvi


MVVMCROSS V3 tika ieviestas vairākas būtiskas izmaiņas attiecībā uz ViewModel uzbūvi, kuru mērķis bija uzlabot izstrādātāju pārbaudāmību un lietojamību. Šeit ir galvenās izmaiņas:

1. Uz konstruktoru balstīta atkarības injekcija: Viena no galvenajām izmaiņām bija atkarības injekcijas ieviešana uz konstruktorām. Tas ļāva izstrādātājiem ievadīt atkarības tieši ViewModel konstruktorā, padarot vieglāku atkarību pārvaldību un pārbaudāmības uzlabošanu. Pirms tam atkarības bieži tika pārvaldītas ar citiem līdzekļiem, kas varētu būt mazāk vienkārši.

2. Navigācija, izmantojot drukātas navigācijas klases: MVVMCROSS V3 ieviesa jaunu navigācijas sistēmu, kurā tika izmantotas drukātās navigācijas klases. Tas nozīmēja, ka tā vietā, lai virzītos tieši uz skatiem, izstrādātāji varēja pārvietoties starp ViewModels, izmantojot spēcīgi tipiskas klases. Šī pieeja vienkāršoja starpplatformu navigāciju, abstrakot platformai specifiskas detaļas.

3. Tombstoning Saglabāšana un pārlādēšana ViewModel stāvoklī: V3 ieviesta vēl viena nozīmīga funkcija bija spēja saglabāt un pārlādēt ViewModel stāvokli. Tas bija īpaši noderīgi, lai apstrādātu "kapa vietas" scenārijus, kur operētājsistēma var pārtraukt lietojumprogrammu atmiņas ierobežojumu dēļ, un pēc tam atjaunot, kad lietotājs atgriežas pie tā. Saglabājot ViewModel stāvokli, pieteikumi varētu saglabāt savu pašreizējo stāvokli pat pēc pārtraukšanas un restartēšanas.

4. Navigācijas parametri, kas nodoti `init ()` metode: MVVMCROSS vecākajās versijās navigācijas parametri tika nodoti tieši ViewModel konstruktoram. Tomēr, sākot ar V3, šie parametri tika nodoti metodei `init ()`. Šīs izmaiņas ļāva konstruktoru izmantot tikai atkarības injekcijai, padarot kodu tīrāku un uzturamāku. Metode “init ()` kļuva par vietu, kur tika apstrādāti navigācijas parametri, ļaujot iegūt elastīgāku inicializācijas loģiku.

Kopumā šīs izmaiņas MVVMCROSS V3 nodrošināja strukturētu un uzturējamu veidu, kā izveidot un pārvaldīt ViewModels, uzlabojot kopējo attīstības pieredzi starpplatformu lietojumprogrammām.

Atsauces:
[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/customing-using-app-and-setup
[5] https://www.mvvmcross.com/blog/
[6] https://softwareEngineering.stackexchange.com/questions/389086/do-we-need-models-if-we-are-using-viewmodels
[7] https://stackoverflow.com/questions/16723078/mvvmcross-does-showviewmodel-always-construct-instances
[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
[11] https://github.com/mvvmcross/mvvmcross/blob/develop/changelog.md