SwiftUI 中 @ObservedObject 与 @StateObject 的区别
原文中文,约6600字,阅读约需16分钟。发表于: 。在之前的学习笔记《SwiftUI学习笔记04 – 如何调试SwiftUI?》有提到@ObservedObject容易导致View刷新被重复创建的问题。其中有一部分是我使用不当导致的。今天我们来分析下SwiftUI 中 @ObservedObject 与 @StateObject 的区别。 1. 生命周期不同 我们先来看一个常规的操作: final class DebugViewModel:...
本文讨论了SwiftUI中@ObservedObject和@StateObject的区别,@ObservedObject在View刷新时会重复创建,而@StateObject只会创建一次。@StateObject用于View的数据来源,@ObservedObject用于在不同的View之间传递ObservableObject。文章还介绍了SwiftUI 5中的@Observable宏,可以替代@ObservedObject和@Published声明,但会导致Subview的重绘和@State的ViewModel重建。作者建议目前还是使用@StateObject为主,如果迁移到@Observable宏,需要解决重建ViewModel的问题。