GetX: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
(Die Seite wurde neu angelegt: „= Links = * Flutter = Einleitung = GetX ist ein Flutter-Paket https://pub.dev/packages/get, das Zustandsmanagement und unkompliziertes Routing von Flutter…“) |
|||
(2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 5: | Zeile 5: | ||
GetX ist ein Flutter-Paket https://pub.dev/packages/get, das Zustandsmanagement und unkompliziertes Routing von Flutter-Apps erlaubt. | GetX ist ein Flutter-Paket https://pub.dev/packages/get, das Zustandsmanagement und unkompliziertes Routing von Flutter-Apps erlaubt. | ||
== Zustandsmanagement | == Zustandsmanagement == | ||
In Controllern werden Variablen als "zu überwachen" markiert. Widgets auf Seiten werden mit Werten dieser überwachten Variablen belegt. | In Controllern werden Variablen als "zu überwachen" markiert. Widgets auf Seiten werden mit Werten dieser überwachten Variablen belegt. | ||
Zeile 20: | Zeile 20: | ||
* Überwachte Variablen werden mit .obs markiert. | * Überwachte Variablen werden mit .obs markiert. | ||
* Zugriff auf Variable: myObsVar.value | * Zugriff auf Variable: myObsVar.value | ||
* | * Widgets, die überwachte Variablen verwenden: mit <code>Obs( () => Widget(...))</code> kapseln. | ||
* | * Wenn Automatik nicht funktioniert: update() aufgerufen werden. | ||
* Eine View-Klasse, die einen Controller hat: | |||
<syntaxhighlight lang=dart> | <syntaxhighlight lang=dart> | ||
class FileSelectView extends GetView<FileSelectController> { | |||
... | |||
} | |||
</syntaxhighlight> | |||
* Sind mehrere Controller beteiligt, werden diese mit <code>Get.put()</code> und mit <code>final c = Get.find()</code> geholt. | |||
** Es kann ein '''Tag''' zur Unterscheidung benutzt werden. | |||
<syntaxhighlight lang=dart> | |||
const todoTag = 'todo'; | |||
class HomeScreen extends StatelessWidget { | class HomeScreen extends StatelessWidget { | ||
final TodoController todoController = Get.put(TodoController()); | final TodoController todoController = Get.put(TodoController(), todoTag); | ||
... | |||
} | |||
class AnyClass { | |||
final ToController todoController = Get.find(todoTag); | |||
... | ... | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> |
Aktuelle Version vom 24. August 2022, 17:13 Uhr
Links[Bearbeiten]
Einleitung[Bearbeiten]
GetX ist ein Flutter-Paket https://pub.dev/packages/get, das Zustandsmanagement und unkompliziertes Routing von Flutter-Apps erlaubt.
Zustandsmanagement[Bearbeiten]
In Controllern werden Variablen als "zu überwachen" markiert. Widgets auf Seiten werden mit Werten dieser überwachten Variablen belegt.
Ändert sich der Wert einer überwachten Variablen, ändert sich automatisch jedes darauf Bezug nehmendes Widget automatisch. Dies wird intern mit Streams realisiert.
Unkompliziertes Routing[Bearbeiten]
Es kann an jeder Stelle im Programm eine andere Seite aufgerufen werden, ohne dass der "Context" bekannt ist.
Anwendung[Bearbeiten]
Controller[Bearbeiten]
- Controller sind Klassen, die von GetxController abgeleitet sind.
- Überwachte Variablen werden mit .obs markiert.
- Zugriff auf Variable: myObsVar.value
- Widgets, die überwachte Variablen verwenden: mit
Obs( () => Widget(...))
kapseln. - Wenn Automatik nicht funktioniert: update() aufgerufen werden.
- Eine View-Klasse, die einen Controller hat:
class FileSelectView extends GetView<FileSelectController> {
...
}
- Sind mehrere Controller beteiligt, werden diese mit
Get.put()
und mitfinal c = Get.find()
geholt.- Es kann ein Tag zur Unterscheidung benutzt werden.
const todoTag = 'todo';
class HomeScreen extends StatelessWidget {
final TodoController todoController = Get.put(TodoController(), todoTag);
...
}
class AnyClass {
final ToController todoController = Get.find(todoTag);
...
}