SwiftUI 基础之@State @Binding @ObservedObject @EnvironmentObject区别

SwiftUI 基础之@State @Binding @ObservedObject @EnvironmentObject区别


相关含代码的教程

  • SwiftUI 基础之@State 有什么用
  • SwiftUI 基础之Toggle控件与@Binding属性装饰器(含代码demo)
  • SwiftUI 基础之@ObservedObject 有什么用(含demo代码2020)
  • SwiftUI 基础之@EnvironmentObject 不被苹果公开认可的全局变量

@State @Binding @ObservedObject 区别

  • @State和@ObservableObject之间有一些细微的差异。这些都是很重要的,因为它们都有不同的用途。首先,@State在视图本地。值或数据在视图中本地保存。它由框架管理,由于它存储在本地,因此它是一个值类型。但是@ObservableObject在视图外部,并且不存储在视图中。它是一种引用类型,因为它不在本地存储,而只是具有对该值的引用。这不是由框架自动管理的,而是开发人员的责任。这最适用于外部数据,例如数据库或由代码管理的模型。

  • @Binding也在视图内,但是与@State区别在于@Binding用于不通视图之间的参数传递。@Binding 和@ObservedObbjecg一样都是传递引用。

  • @EnvironmentObject 可以理解为全局变量
    具体细微差别,大家可以访问demo页面体验用途的不同。

SwiftUI 基础之@State @Binding @ObservedObject @EnvironmentObject区别_第1张图片
image.png

技术交流

QQ:3365059189
SwiftUI技术交流QQ群:518696470

更多SwiftUI教程和代码关注专栏

  • 请关注我的专栏 SwiftUI教程与源码

你可能感兴趣的:(SwiftUI 基础之@State @Binding @ObservedObject @EnvironmentObject区别)