美文网首页
@State @StateObject @ObservedObj

@State @StateObject @ObservedObj

作者: CodingTom | 来源:发表于2021-06-08 13:16 被阅读0次

SwiftUI 中的属性

  • Property - 一般数据展示,不需要同步数据修改操作
  • @State - 数据修改需要同步 UI, 生命周期只局限于当前 View,一般修饰数据为结构体或枚举
  • @ObservedObject - 修饰数据为引用类型,数据的生命周期可以根据情况灵活控制,通常情况下一个顶级视图对应一个 ObservedObject
  • @StateObject - 修饰数据为引用类型,生命周期跟 View 保持一致,可看做 @State@ObservedObject 的结合体
  • @EnvironmentObject - 全局的数据绑定机制,生命周期与绑定到视图的生命周期一致
  • @SceneStorage - View 级别的数据缓存,注意只需要针对需要缓存的数据进行缓存
  • @AppStorage - App 级别的数据缓存,所有子视图都可以访问
  • @Binding - 父子视图之间进行数据源共享,双向绑定,一般只接受处理值类型

View与View间的公用数据使用@State + @Binding。

多个View与Class间的公用数据:对View用@ObservedObject,让Class满足ObservableObject协议。

父View与子View对Class间的公用数据:父View用@ObservedObject,子View用@EnvironmentObject,Class满足ObservableObject协议

相关文章

网友评论

      本文标题:@State @StateObject @ObservedObj

      本文链接:https://www.haomeiwen.com/subject/vnodeltx.html