Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Ce modificări au fost introduse în MVVMCross V3 cu privire la Construcția ViewModel


Ce modificări au fost introduse în MVVMCross V3 cu privire la Construcția ViewModel


În MVVMcross V3, au fost introduse mai multe modificări semnificative în ceea ce privește Construcția ViewModel, care a avut ca scop îmbunătățirea testabilității și a capacității de utilizare pentru dezvoltatori. Iată modificările cheie:

1. Injecția de dependență bazată pe constructor: Una dintre modificările majore a fost introducerea injecției de dependență bazată pe constructor. Acest lucru a permis dezvoltatorilor să injecteze dependențe direct în constructorul ViewModel, ceea ce face mai ușor gestionarea dependențelor și îmbunătățirea testabilității. Înainte de aceasta, dependențele erau adesea gestionate prin alte mijloace, care ar putea fi mai puțin simple.

2. Navigare folosind clase de navigație dactilografiate: MVVMCross V3 a introdus un nou sistem de navigație care a folosit clase de navigație dactilografiate. Acest lucru a însemnat că, în loc să navigheze direct la vizualizări, dezvoltatorii ar putea naviga între ViewModels folosind clase puternic tipate. Această abordare a simplificat navigarea încrucișată cu platformă prin abstractizarea detaliilor specifice platformei.

3. Economisirea și reîncărcarea stării de vizualizare a mormântului pentru tombstoning: o altă caracteristică semnificativă introdusă în V3 a fost capacitatea de a salva și reîncărca starea ViewModel. Acest lucru a fost util în special pentru gestionarea scenariilor „tombstoning”, unde o aplicație ar putea fi încheiată de sistemul de operare din cauza constrângerilor de memorie, apoi restabilit atunci când utilizatorul se întoarce la acesta. Prin economisirea stării ViewModel, aplicațiile și -ar putea menține starea actuală chiar și după ce au fost încetate și repornite.

4. Parametrii de navigație trecuți la `init ()` metodă: În versiunile mai vechi ale MVVMcross, parametrii de navigare au fost transmisi direct la constructorul ViewModel. Cu toate acestea, începând cu V3, acești parametri au fost în schimb trecuți la metoda `init ()`. Această modificare a permis utilizarea constructorului doar pentru injecția de dependență, ceea ce face ca codul să fie mai curat și mai menținut. Metoda `init ()` a devenit locul în care au fost procesați parametrii de navigație, permițând o logică de inițializare mai flexibilă.

În general, aceste modificări în MVVMcross V3 au oferit un mod mai structurat și mai întreținut de construire și gestionare a ViewModels, îmbunătățind experiența generală de dezvoltare pentru aplicații multiplice.

Citări:
[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-are-using-iewmodels
[7] https://stackoverflow.com/questions/16723078/mvvmcross-does-showviewmodel-yways-lownsroduct-new-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-binding
[11] https://github.com/mvvmcross/mvvmcross/blob/develop/changelog.md