Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Onko mitään yleisiä sudenkuoppia käytettäessä mvxview- ja mvxviewControlleria mvvmcrossissa


Onko mitään yleisiä sudenkuoppia käytettäessä mvxview- ja mvxviewControlleria mvvmcrossissa


Kun käytät `mvxview` ja` mvxviewController` mvvmcrossissa, voi syntyä useita yleisiä sudenkuoppia. Näiden kysymysten ymmärtäminen voi auttaa kehittäjiä välttämään niitä ja varmistamaan sujuvamman kehityksen.

1. Kirjoita muuntamisongelmat **

Yksi yleinen ongelma on tyypin muuntaminen. MVVM -kuviossa näkymämallissa määritellyt ominaisuudet eivät ehkä ole suoraan käyttöliittymä. Esimerkiksi kuvaominaisuus voi olla tavuryhmä, mutta käyttöliittymä odottaa sitä kuvan lähteenä. MVVMCROSS tarjoaa `ImvxValueConverter` -rajapinnan tällaisten tulosten käsittelemiseksi, mutta se vaatii valun, joka voi olla hankala. Yleinen `mvxvalueConverter` -luokka auttaa antamalla sinun määrittää tulo- ja lähtötyypit nimenomaisesti [1].

2. Lifecycle Management **

Alkaen MVVMCross 5.0: stä, ViewModels on kytkettynä näkymän elinkaareen, tarjoamalla menetelmiä, kuten `esiintymistä ()`, `ilmestyi ()`, `katoamiseen ()` ja `kadonnut ()`. Vaikka nämä menetelmät tarjoavat enemmän hallintaa ViewModel-tilasta, ne eivät ole 100% luotettavia, ja alustakohtaiset tapahtumat tai mukautettu sovelluslogiikka [2] [7] voivat vaikuttaa niihin. Näiden elinkaaritapahtumien asianmukainen käsittely on ratkaisevan tärkeää.

3. Sitoutuvat ongelmat **

Sitoutumisongelmia voi tapahtua, etenkin kun käytetään mukautettuja näkymiä tai säätimiä. Esimerkiksi, jos mukautettu ohjaus luodaan ennen ViewModel -tietojen saatavilla, `DataContext` voi olla nolla. `DivelBind` -sovelluksen käyttäminen voi auttaa ratkaisemaan tämän viivästymällä sitomista, kunnes tiedot ovat käytettävissä [4].

4. Näkökulmien uudelleenkäytettävyys **

MVVMCROSS: n näkymämallit, etenkin iOS: lla, voivat liittää tiukasti tiettyihin näkymiin vähentäen niiden uudelleenkäytettävyyttä. Tämä tapahtuu, kun ViewModels käsittelee näkymäkohtaista logiikkaa, kuten tarrojen muotoilua tai toimivat tietolähteinä taulukonäkymiin. Tämän välttämiseksi pidä näkymämallit, jotka ovat keskittyneet liiketoimintalogiikkaan ja käytä muuntimia tai muita mekanismeja näkökohtaisten muunnosten käsittelemiseksi [3].

5. Alustakohtainen navigointi **

MVVMCross tukee alustojen välistä navigointia, mutta jokaisella alustalla on ainutlaatuiset esitysmallit. Esimerkiksi iOS: lla näytön virtausohjelmien käyttäminen voi olla ristiriidassa MVVMCROSS: n alustojen välisen lähestymistavan kanssa. On parasta käsitellä navigointilogiikkaa ViewModelissa ja käyttää alustakohtaisia ​​esittäjiä hallitsemaan näkymiä näkyy [5] [9].

6. Linker -turvallisuus **

MVVMCross ei ole linkkeri-turvallinen, mikä tarkoittaa, että linkkeri voi poistua kehyksen osista kokoamisen aikana. Tämä voi johtaa suoritusvirheisiin. Tämän estämiseksi sinun on vihjattava linkkeri kehyksen tarvittavien osien säilyttämiseksi [6].

Tietämällä näistä mahdollisista sudenkuoppeista kehittäjät voivat paremmin navigoida mvxview`- ja `mvxviewController` -sovellusten käytön monimutkaisuuksissa MVVMCross -sovelluksissa.

Viittaukset:
.
[2] https://www.mvvmcross.com/mvvmcross-5-release/
[3] https://www.danielhall.io/the-problems-with
.
[5] https://kerry.lothrop.de/ios-ui-with-mvvmcross/
[6] https://github.com/mvvmcross/mvvmcross/issues/4286
[7] https://www.mvvmcross.com/documentation/fundamentals/viewModel-lifecycle
.
[9] https://www.mvvmcross.com/documentation/fundamentals/view-presenters