CodeBlanks Logo Icon CodeBlanks

Cubit

Cubit ile basit state sınıfı yazmayı öğrenirsin.

Cubit

Cubit, Bloc paketinin daha sade halidir. Event sınıfları yerine doğrudan metot çağrısı yaparsın; emit ile yeni state yayınlarsın.

class SayacCubit extends Cubit<int> {
  SayacCubit() : super(0);
  void artir() => emit(state + 1);
}

Cubit, basit state'ler için Bloc'a göre daha az kod gerektirir.

emit ile state değiştirme

Cubit içinde emit(yeniDeger) çağrısı yeni state'i yayınlar. state özelliği mevcut state'i verir.

void artir() => emit(state + 1);
void azalt() => emit(state - 1);

emit çağrıldığında tüm dinleyen widget'lar güncellenir.

Uygulama Cubit ile sayaç yap

SayacCubit sınıfını Cubit<int>'ten türet. super(0) ile başlangıç state'i 0 olsun. artir metodu emit(state + 1) çağırsın. main'de Cubit örneği oluştur, artir çağır ve print('deger: ${cubit.state}') ile yazdır.

Başlangıç kodu

main.dart
import 'package:flutter_bloc/flutter_bloc.dart';

// SayacCubit, Cubit<int>'ten türetilsin

void main() {
  final cubit = SayacCubit();
  cubit.artir();
  print('deger: ${cubit.state}');
}

Örnek çözüm

main.dart
import 'package:flutter_bloc/flutter_bloc.dart';

class SayacCubit extends Cubit<int> {
  SayacCubit() : super(0);
  void artir() => emit(state + 1);
}

void main() {
  final cubit = SayacCubit();
  cubit.artir();
  print('deger: ${cubit.state}');
}

Beklenen çıktı

deger: 1

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Cubit'in Bloc'tan farkı nedir?

  • State yayınlamaz
  • Daha yavaş çalışır
  • Yalnızca StatelessWidget ile çalışır
  • Event sınıfları yerine metot çağrısı kullanır Doğru cevap

Açıklama: Cubit, Bloc gibi event sınıfları tanımlamaz; doğrudan metot çağrısı ile state değiştirir ve emit ile yeni state yayınlar.

2 Cubit içinde emit çağrısını tamamla

Soru
class SayacCubit extends Cubit<int> {
  SayacCubit() : super(0);
  void artir() => ____(state + 1);
}
Cevap
class SayacCubit extends Cubit<int> {
  SayacCubit() : super(0);
  void artir() => emit(state + 1);
}

Açıklama: Cubit'te yeni state yayınlamak için emit çağrılır; bu, dinleyen widget'ları günceller.

3 Cubit parçaları

Kavram Anlamı
Cubit Basit state yöneten Bloc sınıfı
emit Yeni state yayınlama yöntemi
state Mevcut state değeri
super(0) Başlangıç state'i

Orta seviye bölümündeki tüm dersler