Pakete, Repositories und App-Kategorien suchen

Paketdetailsv0.10.0

flutter_state_management

Eine Sammlung von Hilfsklassen, die die Verwendung von ChangeNotifier für die Zustandsverwaltung erleichtern

AndroidiOSWebmacOSWindowsLinux
30-Tage-Downloads
296
Likes
4
Pub-Punkte
160

Paket installieren

flutter pub add flutter_state_management

Paketübersicht

Aus öffentlichen Paketdaten erstellte Orientierung.

Ein leichtgewichtiges Paket, das die Zustandsverwaltung in Flutter vereinfacht, indem es Hilfsklassen für die Arbeit mit ChangeNotifier bereitstellt. Es reduziert Boilerplate-Code und erhöht die Produktivität von Entwicklern bei der Verwaltung der App-Zustände. Das Paket ist nahtlos in das reaktive Framework von Flutter integriert und unterstützt alle wichtigen Plattformen, einschließlich Android, iOS, Web, macOS, Windows und Linux. Es ist ideal für Entwickler, die einen minimalen, sauberen Ansatz zur Zustandsverwaltung suchen, ohne die Komplexität größerer Zustandsmanagement-Lösungen.

Anwendungsfälle

  • Einfache Zustandsaktualisierungen in kleinen Apps
  • Reduzierung von Boilerplate in ChangeNotifier-Implementierungen
  • Verfeinern der Zustandslogik in Formularen und Benutzeroberflächenkomponenten
  • Verwaltung freigegebener Daten über mehrere Widgets hinweg
  • Leichte Alternative zu BLoC oder Provider

Hauptmerkmale

  • Hilfsklassen für ChangeNotifier
  • Minimale Einrichtung und Integration
  • Plattformübergreifende Unterstützung
  • Saubere und lesbare Codestruktur
  • Eingebaute Hilfsmittel für häufige Zustandsmuster

Geeignet für

  • Anfänger-Flutter-Entwickler
  • Kleine bis mittlere Projekte
  • Apps, die eine grundlegende Zustandsverwaltung benötigen
  • Entwickler, die Einfachheit der Komplexität vorziehen
  • Teams, die schnelle Prototypen erstellen möchten

Hinweise

  • Nicht geeignet für komplexe Zustandsflüsse
  • Eingeschränkt im Vergleich zu umfassenden State-Management-Bibliotheken
  • Kann zusätzliche Werkzeuge für großskalige Anwendungen erfordern
  • Am besten in Kombination mit anderen Zustandsverwaltungsansätzen bei der Skalierung verwendet
  • Enthält keine integrierte Persistenz oder asynchrone Verarbeitung

Original-README

Originaler README-Schnappschuss aus dem verknüpften Quell-Repository. Aktuelle Inhalte finden Sie im Repository.

Flutter State Management

Just a couple of utility classes to make it easier to use Flutter framework's built-in ChangeNotifier and Listenable for state management.

Features

  • No learning curve if you already know Flutter
  • Simple package based on ChangeNotifier (No bloatware)

Usage

Create your model class

class Counter extends StateNotifier<int, String> {
  Counter() : super(const Active(data: 0));

  void increment() async {
    setWaiting();

    await Future.delayed(const Duration(seconds: 2));

    if (data > 20) {
     setFailed('greater than 20');
    } else {
      setActive(data + 1);
    }
  }
}

Or if you want the state to persist across restarts

class Counter extends PersistedStateNotifier<int, String> {
  Counter() : super(IsarKeyValue(), startState: 0);

  void increment() async {
    setWaiting();

    await Future.delayed(const Duration(seconds: 2));

    if (data > 20) {
      setFailed('greater than 20');
    } else {
      setActive(data + 1);
    }
  }
}

Handle State Changes in UI

To only rebuild specific parts:
  1. Use ValueListenableBuilder from the Flutter framework:
final counter = Counter();

ValueListenableBuilder(
  valueListenable: counter,
  child: Text()
  builder: (context, state, child) => // return updated UI here (can also use counter.builderArg here)
  child: const Text('Hello'),
  ),
);

You can also use builderArg helper:

builder: counter.builderArg(
  onActive: ,
  onWaiting: ,
  onNone: ,
  onFailure: ,
),
  1. Or use StateNotifierBuilder that comes with this package and is more user friendly:
final counter = Counter();

counter.builder(
  onActive: (context, data) => Text(data.toString()),
),


\

To rebuild whole widget

Convert your existing StatelessWidget to RStatelessWidget, and StatefulWidget to RStatefulWidget and and just watch the model inside the build method:

class CounterText extends RStatelessWidget {
  @override
  Widget build(BuildContext context) {
    counter.watch(context); // call watch inside the build method (do not use any if) 
    return Text(data.toString());
  }
}

Kategorien

Quell-Repository

Projekte, die dieses Paket verwenden

Noch keine Daten verfügbar.