Pakete, Repositories und App-Kategorien suchen

Paketdetailsv2.3.0

vxstate

VxState ist eine weitere State-Management-Lösung für Flutter. Sie ist stark von Redux und VueX beeinflusst.

AndroidiOSWebmacOSWindowsLinux
30-Tage-Downloads
5820
Likes
31
Pub-Punkte
160

Paket installieren

flutter pub add vxstate

Paketübersicht

Aus öffentlichen Paketdaten erstellte Orientierung.

VxState ist eine Zustandsverwaltungslösung für Flutter, inspiriert von Redux und VueX. Sie bietet einen vorhersehbaren, zentralen Speicher zur Verwaltung des Anwendungsstatus mit einem einseitigen Datenfluss. Entwickelt für Skalierbarkeit und Einfachheit, unterstützt sie reaktive Aktualisierungen und integriert sich gut in den Widgetbaum von Flutter. VxState betont saubere Architektur und Entwicklererfahrung durch präzise APIs und konsistente Muster. Es funktioniert auf allen wichtigen Plattformen, einschließlich Android, iOS, Web, macOS, Windows und Linux.

Anwendungsfälle

  • Verwaltung des globalen App-Zustands
  • Vorhersagbare Zustandsänderungen implementieren
  • Skalierung großer Flutter-Anwendungen
  • Integration mit reaktiven Benutzeroberflächen
  • Komplexe Zustandslogik vereinfachen
  • Unterstützung von plattformübergreifenden Anwendungen

Hauptmerkmale

  • Redux-ähnlicher einseitiger Datenfluss
  • Store-Struktur, inspiriert durch VueX
  • Reaktive Zustandsupdates
  • Plattformübergreifende Kompatibilität
  • Sauberer und minimaler API
  • Unterstützung integrierter Entwicklertools

Geeignet für

  • Entwickler, die mit Redux oder VueX vertraut sind
  • Teams, die große Flutter-Anwendungen erstellen
  • Projekte, die eine vorhersagbare Zustandsverwaltung erfordern
  • Apps mit starken Debugging-Funktionen
  • Entwickler, die Konsistenz und Struktur schätzen

Hinweise

  • Kann für Anfänger eine steilere Lernkurve haben
  • Erfahrung mit Zustandsmustern erforderlich
  • Überdimensioniert für sehr einfache Apps
  • Eingeschränkte Community-Ressourcen im Vergleich zu beliebten Alternativen
  • Nicht so weit verbreitet wie Provider oder Riverpod

Original-README

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

VxState

VxState is a state management library built for Flutter apps with focus on simplicity. It is inspired by StoreKeeper & libraries like Redux, Vuex etc with the power of streams. Here is a basic idea of how it works:

  • Single Store (Single source of truth) to keep app's data
  • Structured modifications to store with Mutations
  • Widgets listen to mutations to rebuild themselves
  • Enhance this process with Interceptors and Effects

Core of VxState is based on the InheritedModel widget from Flutter.

Getting started

Add to your pubpsec:

dependencies:
  ...
  vxstate: any

Create a store:

import 'package:vxstate/vxstate.dart';

class MyStore extends VxStore {
  int count = 0;
}

Define mutations:

class Increment extends VxMutation<MyStore> {
  perform() => store.count++;
}

Listen to mutations:

@override
Widget build(BuildContext context) {
  // Define when this widget should re render
  VxState.watch(context, on: [Increment]);

  // Get access to the store
  MyStore store = VxState.store as MyStore;

  return Text("${store.count}");
}

Complete example:

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

// Build store and make it part of app
void main() {
  runApp(VxState(
    store: MyStore(),
    child: MyApp(),
  ));
}

// Store definition
class MyStore extends VxStore {
  int count = 0;
}

// Mutations
class Increment extends VxMutation<MyStore> {
  perform() => store.count++;
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    // Define when this widget should re render
    VxState.watch(context, on: [Increment]);

    // Get access to the store
    MyStore store = VxState.store as MyStore;

    return MaterialApp(
      home: Scaffold(
        body: Column(
          children: <Widget>[
            Text("Count: ${store.count}"),
            RaisedButton(
              child: Text("Increment"),
              onPressed: () {
                // Invoke mutation
                Increment();
              },
            ),
          ],
        ),
      ),
    );
  }
}

Documentation

  • VxStore - Where your apps's data is kept
  • VxMutation - Logic that modifies Store
  • VxBuilder, VxNotifier, VxConsumer - Useful widgets for special cases
  • VxEffect - Chained mutations
  • VxInterceptors - Intercept execution of mutations

Kategorien

Quell-Repository

Projekte, die dieses Paket verwenden