Flutter StatelessWidget, StatefulWidget 1

Die Basis von allem sind die Widgets

Wer nicht gaaanz neu bei Flutter ist, kennt die Aussage, das alles bei Flutter ein Widget ist. Obwohl das sicher nicht zu hundert Prozent richtig ist, trifft es oft zu.
Diese Widgets sind in Baumstrukturen organisiert, sind also miteinander verbunden. Man spricht deshalb auch in diesem Zusammenhang oft von "Eltern-Kind" Beziehungen. Wenn man den Baum als Sinnbild heranzieht, dann einen der auf dem Kopf steht. Die oberste Stelle ist immer unsere main Funktion.Sie ist der Startpunkt unserer Software. Die nächste Stufe ist dann "MeineApp" oder welchen Namen das erste Widget auch hat, welches wir programmieren. Es folgt vielleicht ein Scaffold, eine AppBar und vieles andere mehr. Ob man nun ein Eltern Widget betrachtet, oder ein Kind Widget, ist dabei immer relativ zu verstehen. Wer die ersten Schritte in Flutter unternimmt, stösst früher oder später auf den Begriff Context. In Flutter ist ein Context, immer eine Referenz zum Standort eines Widgets in dieser Baumhierarchie. Jedes Widget hat dabei seinen ganz persönlichen  Context, welcher wiederum verkettet ist, mit den Eltern und Kinder Contexte. Auch in diesem Zusammenhang entsteht eine Art Baumhierarchie. Es ist dabei wichtig zu wissen, das man als Flutter Programmierer Zugriff auf den Eltern Context hat, und auch auf den der Kinder. Im Falle von Kinder Contexte ist das aber nicht zu empfehlen.
Hier nur ein kleines Beispiel, das bekannt vorkommen sollte :Widget build(BuildContext context)

Stateless Widgets


Einige Widgets hängen alleine von den eigenen Konfigurationsinformationen ab. Einem Container Widget zum Beispiel geben wir alles nötige an Informationen mit auf den Weg. Es ist nicht dazu gedacht sich im Programmverlauf noch einmal zu ändern. Es hat also keinen veränderbaren Zustand.
Der Lebenszyklus eines Stateless Widgets ist deshalb: Initialisierung (mit den Vorgaben des Programmierers) und Ausführung/Darstellung mit einer build() Methode.

Stateful Widgets


Es gibt die andere Sorte Widgets, diejenigen die Daten enthalten, die sich während der Programmlaufzeit ändern können. Diese können das Verhalten und die Layout Auswirkungen des Widgets ändern. Dieser Satz an veränderbaren Daten solch eines Widgets, werden auch als State bezeichnet. Jede Veränderung an diesen Daten führt zu einer neuen Ausführung/Darstellung dieses Widgets. Während der Lebenszeit des Programmes kann das immer wieder vorkommen.  Bei einem Stateless Widget nur einmal. Dieser State ist immer mit dem entsprechenden Context des Widgets verbunden

Zusammenfassung


Die Widgets von Flutter sind einer "Baumstruktur" miteinander verbunden. Jedes Widget hat einen Context und auch diese sind miteinander verbunden. Der einzelne Context kann dabei seinen "Eltern" Context sehen, aber nicht andere, weiter oben in der Struktur befindliche Contexte. Das Stateless Widget ist für einmalige Aufgaben gedacht, das Stateful Widget, hier vor allem sein "State" für wiederkehrende Veränderungen während der Programmlaufzeit.

Kommentare

Beliebte Posts aus diesem Blog

Material Design in Flutter Teil 2

Flutter -- ohne Dart geht es nicht 2 -- einfache Variablen Typen

Dart Final Const