许多在线网站演示使用惰性堆栈加载大量视图,例如ForEach(1...100, id: \.self) { value in
用于演示用法。但是在具有复杂视图的生产应用程序中,我真的找不到任何资源来了解在何处以及如何准确地使用 Lazy Stacks。例如,我有一个MasterView
包含许多复杂视图的子视图(每个视图包含多个绘制成本高的图表)。我应该像下面那样在顶层使用惰性堆栈,还是子视图(ComplexView
s)也应该在它们中使用惰性堆栈?或者子视图应该使用 LazyStacks 并MasterView
使用常规的 VStack?从性能(滚动的角度)来看,什么是最优化的。
struct MasterView: View {
var body: some View {
NavigationView {
ScrollView {
LazyVStack {
ComplexView()
ComplexView()
ComplexView()
ComplexView()
ComplexView()
ComplexView()
}
}
}
}
}
struct ComplexView: View {
var body: some View {
VStack { //LazyVStack??
HStack { //LazyHStack??
SwiftUIChart
Text("Chart Data")
}
HStack {
SwiftUIChart
Text("Chart Data")
}
HStack {
SwiftUIChart
Text("Chart Data")
}
}
}
}