CodeBlanks Logo Icon CodeBlanks

Element tree

Element ağacının widget ile render arasındaki bağ olduğunu öğrenirsin.

Element tree

Element ağacı, widget ağacı ile render ağacı arasındaki bağdır. Her widget için bir Element oluşturulur; element widget'ı mount eder, state ve bağlam tutar. Widget'lar her rebuild'de yenilense de elementler korunur ve sadece update edilir.

// Her StatelessWidget için bir Element oluşturulur
element.update(newWidget);

mount ve update

mount, elementin ağaca ilk kez eklenmesi; update ise mevcut elementin yeni widget ile güncellenmesidir. Elementler korunduğu için rebuild ucuzdur: sadece update çağrılır.

Uygulama StatelessWidget tanımla

MyWidget adında bir StatelessWidget tanımla. build metodu Container(child: Text('Selam')) döndürsün. main içinde const MyWidget() örneği al ve runtimeType yazdır.

Başlangıç kodu

main.dart
import 'package:flutter/material.dart';

// MyWidget StatelessWidget olsun
// build metodu Selam metnini içeren bir Container döndürsün

void main() {
  // MyWidget örneği al ve runtimeType yazdır
}

Örnek çözüm

main.dart
import 'package:flutter/material.dart';

class MyWidget extends StatelessWidget {
  const MyWidget({super.key});

  @override
  Widget build(BuildContext context) {
    return Container(child: const Text('Selam'));
  }
}

void main() {
  final widget = const MyWidget();
  print(widget.runtimeType);
}

Beklenen çıktı

MyWidget

Soru ve cevaplar

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

1 Element ağacı neyin arasında köprü görevi görür?

  • Bellek ve disk
  • State ve BuildContext
  • İki widget
  • Widget ağacı ve render ağacı Doğru cevap

Açıklama: Element ağacı, widget ağacını (soyut tanım) ile render ağacına (çizim) bağlayan ara katmandır; her widget için bir element oluşur.

2 Element'i güncelle

Soru
element.____(newWidget);
Cevap
element.update(newWidget);

Açıklama: Mevcut element yeni widget ile güncellenirken update çağrılır; mount yalnızca ilk eklemede, dispose ağaçtan çıkarılmada kullanılır.

3 Element tree eşleşmeleri

Kavram Anlamı
Element Widget-render bağlayıcı
mount İlk ağaca ekleme
update Widget değiştiğinde güncelleme
BuildContext Element'in kendisi

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