Junior
Kādai shablonai pieder MVVM?
sobes.tech AI
Atbilde no AI
Model-View-ViewModel.
Komponentu atbildība:
- Modelis: Attēlo datus un biznesa loģiku. Nezina par View vai ViewModel.
- View: Parāda datus un nosūta lietotāja darbības uz ViewModel. Nesatur biznesa loģiku.
- ViewModel: Savieno Modeli un View. Satur prezentācijas loģiku, pārveido datus no Modeļa uz View un apstrādā lietotāja darbības. Tam nav tiešas saites uz View, mijiedarbība bieži notiek caur saistībām vai paziņojumu modeļiem (piemēram, ObservableObject SwiftUI).
Saites starp komponentiem:
- View abonē izmaiņas ViewModel.
- ViewModel atjauno View, mainoties datiem Modeļa vai apstrādājot lietotāja darbības.
- ViewModel sadarbojas ar Modeli, lai iegūtu vai saglabātu datus.
Piemērs (SwiftUI):
// Model
struct User {
let name: String
let age: Int
}
// ViewModel
import SwiftUI
final class UserViewModel: ObservableObject {
@Published var userName: String = ""
@Published var userAge: String = ""
private let user: User
init(user: User) {
self.user = user
self.userName = "Vārds: \(user.name)"
self.userAge = "Vecums: \(user.age)"
}
}
// View
import SwiftUI
struct UserView: View {
@ObservedObject var viewModel: UserViewModel
var body: some View {
VStack {
Text(viewModel.userName)
Text(viewModel.userAge)
}
}
}