‣
‣
Your data is prone to change
Your data will be likely to shared by a lot of subviews
Use (observable class, @Published) → @StateObject → EnvironmentObject → @EnvironmentObject chain
Your data will be likely to only shared by a few subviews
Use (observable class, @Published) → @StateObject → @ObservedObject chain
Your data is more likely to keep the same (Value Types such as Bool
, Int
, Enum
, Struct
)
Shared by a lot of subviews
Use struct → @State → EnvironmentObject → @EnvironmentObject chain
Shared by limited subviews
Use struct → @State → @Binding chain
Source
https://www.raywenderlich.com/books/swiftui-apprentice/v1.0/chapters/11-understanding-property-wrappers#toc-chapter-017-anchor-004