Utforma en ViewModel
Bygg en @Observable-viewmodell för en skärm.
Utforma en ViewModel är en gratis lektion i SwiftUI Academy på CoddyKit. Detta är lektion 2 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för SwiftUI Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i SwiftUI Academy innehåller totalt 4 lektioner.
En ViewModel är bara en klass
En ViewModel är vanligtvis en klass som innehåller tillstånd och logik för en skärm. Med en klass kan flera vyer dela samma aktuella instans.
class ProfileViewModel {
var name: String = ""
}Gör den observerbar
Lägg till makrot @Observable så att SwiftUI följer egenskapsändringar och automatiskt ritar om vyn när tillståndet uppdateras.
@Observable
class ProfileViewModel {
var name = ""
}Exponera tillstånd som vyn kan använda
Ge ViewModel egenskaper som vyn kan läsa direkt, till exempel en formaterad greeting, så att vyn inte behöver bygga strängar själv.
var greeting: String {
"Hi, " + name
}Behåll laddningsflaggan
Följ gränssnittets status i ViewModel. En enkel boolesk variabel isLoading låter vyn avgöra när en laddningsindikator respektive innehållet ska visas.
var isLoading = falseLägg avsikten i metoder
Exponera åtgärder som metoder, till exempel load() eller save(). Vyn anropar dem vid tryck, medan ViewModel avgör exakt vad som ska hända.
func load() {
isLoading = true
}Namnge egenskaper efter gränssnittet
Namnge tillstånd efter det som skärmen visar, till exempel buttonTitle eller rows, inte efter rådata. Då förblir vyn nästan deklarativ.
Dölj de röriga detaljerna
Tolkning, matematik och specialfall hör hemma i ViewModel. Vyn ska se rena värden och aldrig behöva hantera det besvärliga arbetet.
En ViewModel per skärm
Ge varje skärm en egen fokuserad ViewModel. En liten modell med ett enda ansvarsområde är mycket enklare att läsa, förstå och testa.
Börja tomt och fyll sedan på
Initiera ViewModel med rimliga tomma standardvärden och fyll sedan på den när data kommer fram. Under tiden visar vyn ett lugnt tomt tillstånd.
Undvik vy-kod inuti
Importera aldrig vytyper eller layoutkod i en ViewModel. Att hålla den fri från gränssnittskod gör den portabel och enkel att enhetstesta. ✨
Ett komplett litet exempel
Den här lilla ViewModel exponerar ett antal och en metod för att ändra det, vilket ger vyn allt den behöver i två tydliga medlemmar.
@Observable
class CounterViewModel {
var count = 0
func increment() { count += 1 }
}Snabb kontroll
Vilket makro gör att en ViewModel-klass utlöser uppdateringar i SwiftUI?
Sammanfattning: utforma en ViewModel
Du byggde en @Observable-klass som exponerar tillstånd som vyn kan använda och metoder för avsikter, samtidigt som den döljer de röriga detaljerna. Nästa steg är att binda vyer till den.
Lär dig Swift med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 30
- Lektioner
- 120
Vanliga frågor
Är lektionen ”Utforma en ViewModel” gratis?
Ja – hela texten till ”Utforma en ViewModel” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i SwiftUI Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i SwiftUI Academy innehåller totalt 4 lektioner.
Vad lär jag mig i ”Utforma en ViewModel”?
Bygg en @Observable-viewmodell för en skärm. Ni övar på SwiftUI Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig SwiftUI Academy?
Du behöver inga förkunskaper. Utbildningen i SwiftUI Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 2 av 4.
Hur lång tid tar lektionen ”Utforma en ViewModel”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här SwiftUI Academy-lektionen?
Ja. Varje SwiftUI Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Varför MVVM passar SwiftUI
- Utforma en ViewModel
- Koppla vyer till ViewModels
- Dependency Injection för ViewModels