StateObject vs ObservedObject

SwiftUI’da StateObject ve ObservedObject, uygulamanızda durumunuzu yönetmek için kullanılan iki farklı özelliktir. İkisi arasındaki temel fark, StateObject‘in sadece bir View tarafından sahip olunabilecek bir nesne olduğu, ObservedObject‘in ise birden çok View tarafından paylaşılabilen bir nesne olduğudur. İşlevsellikleri aynıdır, ancak kullanım durumları farklıdır.

StateObject

StateObject, bir View tarafından sahip olunan bir nesnedir ve bu nesnenin durumu, bu View‘in ömrü boyunca korunur. Eğer bu nesne değişirse, SwiftUI otomatik olarak ilgili View‘i günceller. StateObject genellikle, o View‘in durumunu tutmak için kullanılır.

ObservedObject

ObservedObject, bir nesnenin durumunu gözlemlemek için kullanılır ve bu nesne birden çok View tarafından paylaşılabilir. ObservedObject‘in değişikliklerini takip eden her View, otomatik olarak güncellenecektir.

Hangisini Kullanmalıyım? Seçiminiz, kullanmak istediğiniz veri akışının türüne bağlıdır:

  • @StateObject: Yalnızca bir view içindeki durumu yönetmek istediğinizde kullanılır. Eğer diğer view’lerde bu nesneyi paylaşmak veya veri akışını genişletmek gerekiyorsa, @StateObject kullanımı uygun olmayabilir.
  • @ObservedObject: Birden fazla view arasında paylaşılan verileri yönetmek ve view’lerin veri değişikliklerine otomatik olarak tepki göstermesini sağlamak istediğinizde tercih edilir. Uygulama düzeyinde veri akışını kolayca sağlamak için @ObservedObject kullanmak daha uygun olabilir.

Yorum yapın