在SwiftUI中使用MVVM架構(gòu)模式可以幫助我們更好地管理數(shù)據(jù)和UI之間的關(guān)系,使代碼更加清晰和可維護(hù)。下面是一些基本的步驟指導(dǎo)您如何在SwiftUI中使用MVVM架構(gòu)模式:
struct User {
var id: Int
var name: String
}
class UserViewModel: ObservableObject {
@Published var users: [User] = []
func fetchUsers() {
// 這里可以用來(lái)從網(wǎng)絡(luò)請(qǐng)求數(shù)據(jù)或者從本地?cái)?shù)據(jù)庫(kù)獲取數(shù)據(jù)
self.users = [
User(id: 1, name: "Alice"),
User(id: 2, name: "Bob")
]
}
}
struct UserListView: View {
@ObservedObject var viewModel = UserViewModel()
var body: some View {
List(viewModel.users) { user in
Text(user.name)
}
.onApper {
viewModel.fetchUsers()
}
}
}
在這個(gè)例子中,我們創(chuàng)建了一個(gè)UserListView來(lái)顯示用戶(hù)列表,它觀察UserViewModel的數(shù)據(jù)變化并在視圖出現(xiàn)時(shí)調(diào)用fetchUsers()方法獲取數(shù)據(jù)。
通過(guò)使用MVVM架構(gòu)模式,我們可以更好地分離數(shù)據(jù)和UI,并使代碼更加清晰和可維護(hù)。同時(shí),ViewModel還可以幫助我們處理數(shù)據(jù)的邏輯操作,使得我們的視圖更加簡(jiǎn)潔和易于測(cè)試。