Sobes.tech
Middle

Flutter'da değiştirilemez nesneler nasıl kullanılır?

sobes.tech yapay zeka

AI'dan gelen yanıt

Flutter'da, değiştirilemez nesneler (örneğin, widget'lar) kullanıcı arayüzünün yeniden çizilme mekanizmasında merkezi bir rol oynar.

Kullanımın temel yönleri:

  • Yeniden çizim verimliliği: Flutter, özellikleri oluşturulduktan sonra değişmeyen widget'ları ağaçta etkili bir şekilde karşılaştırabilir. Eğer üst widget'ın özellikleri değişmediyse, onun çocukları, yani değiştirilemez widget'lar da yeniden çizilmez, bu da performansı optimize eder.
  • Öngörülebilirlik: Widget'ın özelliklerinin değişmezliği nedeniyle, durumu her zaman oluşturulma anında açıkça tanımlıdır. Bu, hata ayıklamayı ve uygulamadaki veri akışını anlamayı kolaylaştırır.
  • Akış güvenliği: Değiştirilemez nesneler değiştirilemediği için, doğası gereği akış güvenlidirler. Bu, birden fazla iş parçacığının verilerle etkileşime girebileceği asenkron ortamlarda önemlidir.
  • Yeni durum oluşturma: Veriler değiştirildiğinde, mevcut nesne üzerinde değişiklik yapmak yerine, güncellenmiş özelliklerle yeni bir widget veya durum nesnesi örneği oluşturulur.

Değiştirilemez bir widget StatelessWidget örneği:

import 'package:flutter/material.dart';

class ImmutableWidget extends StatelessWidget {
  final String text; // Son alan - oluşturulduktan sonra değiştirilemez yapar

  const ImmutableWidget({Key? key, required this.text}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Text(text);
  }
}

StatefulWidget'ta, widget kendisi değiştirilemezdir, ancak ilişkili nesne State değiştirilebilir ve değiştirilebilir durumu tutar. Durum State içinde değiştirildiğinde, setState() çağrılır ve framework'e widget'ların yeni durum kullanılarak yeniden inşa edilmesi gerektiği bildirilir. Güncellenmiş özelliklerle yeni bir widget örneği oluşturulur, ancak eski widget yeni ile karşılaştırılır ve element ağındaki en küçük değişiklikler belirlenir.