Opaque Result Type var body: some View,很多时候在UI布局中是确定不了闭包中的具体类型,有可能是Text、Button、List等,为了解决这一问题,就产生了Opaque Result Type

PropertyDelegate 视图中声明的任何状态、内容和布局,源头一旦发生改变,会自动更新视图,因此,只需要一次布局。在属性前面加上@State关键词,即可实现每次数据改动,UI动态更新的效果。

  • @State - 视图和数据存在依赖,数据变化要同步到视图;
  • @Binding - 父子视图直接有数据的依赖,数据变化要同步到父子视图;
  • @BindableObject - 外部数据结构与SwiftUI建立数据存在依赖;
  • @EnvironmentObject - 跨组件快速访问全局数据源;

FunctionBuilder 在组合视图中,闭包中会处理大量的UI组件,FunctionBuilder是通过闭包建立样式,将闭包中的UI描述传递给专门的构造器,提供了类似DSL的开发模式