Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Hvilke ændringer blev introduceret i MVVMCross V3 med hensyn til visningskonstruktion


Hvilke ændringer blev introduceret i MVVMCross V3 med hensyn til visningskonstruktion


I MVVMCROSS V3 blev der indført adskillige signifikante ændringer vedrørende ViewModel Construction, som havde til formål at øge testbarheden og anvendeligheden for udviklere. Her er de vigtigste ændringer:

1. Konstruktørbaseret afhængighedsinjektion: En af de største ændringer var introduktionen af ​​konstruktørbaseret afhængighedsinjektion. Dette gjorde det muligt for udviklere at injicere afhængigheder direkte i ViewModel's konstruktør, hvilket gjorde det lettere at håndtere afhængigheder og forbedre testbarheden. Før dette blev afhængigheder ofte styret på andre måder, hvilket kunne være mindre ligetil.

2. Navigation ved hjælp af typede navigationsklasser: MVVMCROSS V3 introducerede et nyt navigationssystem, der brugte typede navigationsklasser. Dette betød, at i stedet for at navigere direkte til udsigter, kunne udviklere navigere mellem ViewModels ved hjælp af stærkt typede klasser. Denne tilgang forenklet tværplatform navigation ved at abstrahere platformspecifikke detaljer.

3. redning og genindlæsning af ViewModel State for Tombstoning: En anden væsentlig funktion, der blev introduceret i V3, var evnen til at gemme og genindlæse ViewModel State. Dette var især nyttigt til håndtering af "Tombstoning" -scenarier, hvor en applikation muligvis opsiges af operativsystemet på grund af hukommelsesbegrænsninger og derefter gendannes, når brugeren vender tilbage til det. Ved at gemme ViewModel State kunne applikationer opretholde deres nuværende tilstand, selv efter at de blev afsluttet og genstartet.

4. Navigationsparametre overført til `init ()` metode: I ældre versioner af MVVMCROSS blev navigationsparametre overført direkte til ViewModel's konstruktør. Start med V3 blev disse parametre imidlertid overført til metoden `init ()`. Denne ændring gjorde det muligt for konstruktøren udelukkende at blive brugt til afhængighedsinjektion, hvilket gør koden renere og mere vedligeholdelig. Metoden `init ()` blev det sted, hvor navigationsparametre blev behandlet, hvilket muliggjorde mere fleksibel initialiseringslogik.

Generelt gav disse ændringer i MVVMCROSS V3 en mere struktureret og vedligeholdelig måde at konstruere og styre ViewModels på, hvilket forbedrede den samlede udviklingserfaring til applikationer på tværs af platform.

Citater:
[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-sising-app-and-setup
[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/develop/changelog.md