如果我ObservableObject在 SwiftUI 中有一个,我可以将其称为@ObservedObject:
class ViewModel: ObservableObject {
@Published var someText = "Hello World!"
}
struct ContentView: View {
@ObservedObject var viewModel = ViewModel()
var body: some View {
Text(viewModel.someText)
}
}
Run Code Online (Sandbox Code Playgroud)
或者作为@StateObject:
class ViewModel: ObservableObject {
@Published var someText = "Hello World!"
}
struct ContentView: View {
@StateObject var viewModel = ViewModel()
var body: some View {
Text(viewModel.someText)
}
}
Run Code Online (Sandbox Code Playgroud)
但两者之间的实际区别是什么?有没有一种情况比另一种更好,或者它们是两种完全不同的东西?