进阶课程(5)SwiftUI中的网络请求时机
三种网络请求时机
一、 onAppear()视图方法
在 SwiftUI 中,您可以使用 onAppear()或 onChange()方法在页面渲染时请求网络数据。
onAppear():在视图出现在屏幕上时调用。
struct ContentView: View {
@State private var data: Data = Data()
var body: some View {
VStack {
Text("Data: \(data)")
}
.onAppear {
self.loadData()
}
}
}
二、 task 视图方法
在 SwiftUI 中,您可以使用 task()方法在页面渲染时请求网络数据。
task()方法允许您在页面渲染时执行异步任务,并在任务完成时更新视图。
struct ContentView: View {
@State private var data: Data = Data()
var body: some View {
VStack {
Text("Data: \(data)")
}
.task {
self.loadData()
}
}
}
三、 在 View 监听的 ViewModel 的 init 方法中
在 SwiftUI 中,您可以在视图管理者的 init()方法中请求数据
class SomeViewModel: ObservableObject {
@Published var data: Data = Data()
init() {
loadData()
}
}