这是一个非常经典且触及 SwiftUI 核心架构设计的问题。 简单来说,SwiftUI 使用 Struct(结构体)而不是 Class(类),主要是为了性能(Performance)、线程安全(Thread Safety)以及配合其声明式(Declarative)的编程范式。 以下是详细的深度解析: 1. 性能:极度轻量化 (Performance) 栈(Stack)vs 堆(Heap): Class (引用类型): 分配在堆内存中,需要昂贵的内存分配和释放操作,并且涉及引用计数(ARC)的管理。 Struct (值类型): 通常分配在栈内存中(非常快),不需要引用计数。 创建成本: 在 UIKit 中, 是一个非常“重”的对象。它包含图层(CALayer)、手势识别器、约束系统、背景色、事件响应链等大量属性。创建一个 的开销很大。 在 SwiftUI 中, 只是一个遵循 View 协议的 Struct。它几乎不占用内存,它只包含极少量的属性(通常只是用来保存状态的变量)。创建一个 SwiftUI View 的成本几乎可以忽略不计。 这使得 SwiftUI 可以频繁地销毁并重新创...