Equatable
Flutter’da, eşitlik karşılaştırmalarını daha kolay ve etkili bir şekilde yapmak için kullanılan bir pakettir. Dart dilinde, iki nesnenin eşitliğini karşılaştırmak için genellikle ==
operatörü kullanılır. Ancak, Dart’ta ==
operatörü, varsayılan olarak, iki nesnenin aynı örneğe (instance) mi işaret ettiğini kontrol eder; yani referans eşitliğini kontrol eder. Bu, çoğu zaman beklenen davranış olmayabilir, özellikle de değer eşitliğini (iki nesnenin içerik olarak birbirine eşit olup olmadığı) kontrol etmek istediğinizde.
Equatable
paketi, bu sorunu çözmek için kullanılır. Bu paket, nesnelerin değer eşitliğini kolayca kontrol etmek için bir yapı sağlar. Equatable
‘ı kullanarak, nesnelerinizi bu sınıftan türeterek, ==
operatörünü ve hashCode
metodunu otomatik olarak, nesnenin özellikleri baz alınarak uygulamanızı sağlar. Bu sayede, nesneler arasında içerik bazında eşitlik karşılaştırmaları yapabilirsiniz.
Kullanımı
import 'package:equatable/equatable.dart';
class User extends Equatable {
final String id;
final String name;
User(this.id, this.name);
@override
List<Object?> get props => [id, name];
}
Bu örnekte, User
sınıfı Equatable
‘ı genişletir ve id
ile name
alanlarını eşitlik karşılaştırması için kullanır. Bu şekilde, iki User
nesnesi, id
ve name
değerleri aynı olduğunda eşit kabul edilir.
Equatable
kullanmanın avantajlarından biri, Flutter’da kullanıldığında, özellikle StatefulWidget
‘ların durum yönetiminde, widget ağacının gereksiz yere yeniden inşa edilmesini önlemeye yardımcı olmasıdır. Equatable
‘ı kullanan nesneler, eşitlik kontrolü daha doğru yapıldığı için, Flutter daha akıllıca karar verebilir ve sadece gerçekten gerekli olduğunda widget’ları yeniden inşa eder.
Bu Yazıya Tepkin Ne Oldu ?
YORUMLAR