C も P も VM もないんですね!
「@Query」を基本的に、どう理解しておくか。
import SwiftUI
// Model
struct Product {
static var all: [Product] { get async }
}
// View
struct ProductList: View {
@State private var products: [Product] = []
var body: some View {
VStack {
}
.task {
products = await Product.all
}
}
}
SwiftData を使うと以下のように書ける。
import SwiftUI
import SwiftData
// Model
struct Product {
}
// View
struct ProductList: View {
@Query private var products: [Product]
var body: some View {
VStack {
}
}
}
「モデルデータコレクションの非同期取得」 ですね。
@State と同様に変更を監視しています。
👉 Stop using MVVM for SwiftUI | Apple Developer Forums