Pakete, Repositories und App-Kategorien suchen

Paketdetailsv0.2.4

stacked_hooks

Klassen, die Ihnen helfen, Hooks beim Verwenden des stacked-Pakets zu nutzen

AndroidiOSWebmacOSWindowsLinux
30-Tage-Downloads
6750
Likes
70
Pub-Punkte
140

Paket installieren

flutter pub add stacked_hooks

Paketübersicht

Aus öffentlichen Paketdaten erstellte Orientierung.

Stacked Hooks ist ein Flutter-Paket, das die Stacked-Architektur erweitert und nützliche Klassen bereitstellt, um React-artige Hooks nahtlos in Ihren Zustandsverwaltungsworkflow zu integrieren. Es ermöglicht Entwicklern, Hooks wie useState, useEffect und useStream innerhalb der ViewModels von Stacked zu verwenden, was sauberen und modulareren Code fördert. Speziell für Entwickler konzipiert, die bereits das Stacked-Paket nutzen, vereinfacht es die Zustandsverwaltung in UI-Komponenten, ohne eine vollständige Neuschreibung bestehender Logik erforderlich zu machen. Das Paket unterstützt alle wichtigen Plattformen und gewährleistet konsistentes Verhalten unter Android, iOS, Web, macOS, Windows und Linux.

Anwendungsfälle

  • Reaktive Benutzeroberflächen mit minimalem Boilerplate erstellen
  • Lokalen Zustand in gestapelten Ansichtsmodellen verwalten
  • Seitenwirkungen mit useEffect-ähnlicher Logik vereinfachen
  • Streams und asynchrone Operationen integrieren
  • Wiederverwendbare widget mit Zustand erstellen
  • Verbesserung der Wartbarkeit komplexer Ansichten

Hauptmerkmale

  • Eingebaute Hook-Utilities für Stacked
  • Unterstützung für useState, useEffect, useStream
  • Nahtlose Integration in die Stacked-Architektur
  • Plattformübergreifende Kompatibilität
  • Minimale Einrichtung erforderlich
  • Typsichere und intuitive API

Geeignet für

  • Entwickler, die das Stacked-Paket verwenden
  • Teams, die eine saubere Zustandsverwaltung suchen
  • Flutter-Anwendungen mit komplexer UI-Logik
  • Projekte, die darauf abzielen, Boilerplate zu reduzieren
  • Benutzer, die mit React Hooks vertraut sind
  • Anwendungen für mehrere Plattformen

Hinweise

  • Benötigt das Stacked-Paket
  • Beschränkt auf Stapel-basierte Projekte
  • Kann für neue Hook-Nutzer eine Lernkurve erfordern
  • Nicht geeignet für nicht gestapelte Architekturen
  • Am besten geeignet für mittel- bis großskalige Anwendungen
  • Abhängig von Dart's asynchroner und Stream-Verarbeitung

Original-README

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

Stacked Hooks

This package contains widgets that allow you to use the Flutter Hooks package with the StackedView in the Stacked architecture.

StackedHookView

The StackedView is an implementation of a widget class that returns a value provided by Provider as a parameter in the build function of the widget. This allows for easier consumption and use of ViewModel without boilerplate. The StackedHookView allows you to use this widget and make use of Flutter Hooks inside the build function. This is very useful when you want to use TextEditing controllers and you're implementing this architecture.

// View that creates and provides the viewmodel
class StackedHookViewExample extends StackedView<HomeViewModel> {
  const StackedHookViewExample({Key key}) : super(key: key);

  @override
  Widget builder(BuildContext context, HomeViewModel model, Widget? child) {
    return Scaffold(
      body: Center(child: _HookForm()),
    );
  }

  @override
  HomeViewModel modelBuilder(BuildContext context) {
    return HomeViewModel();
  }
}

// Form that makes use of the ViewModel provided above but also makes use of hooks
class _HookForm extends StackedHookView<HomeViewModel> {
  @override
  Widget buildStackedView(BuildContext context, HomeViewModel model) {
    final title = useTextEditingController();
    return Column(
      mainAxisSize: MainAxisSize.min,
      children: <Widget>[
        Text(model.title),
        TextField(controller: title, onChanged: model.updateTitle),
      ],
    );
  }
}

// ViewModel
class HomeViewModel extends BaseViewModel {
  String title = 'default';

  void updateTitle(String value) {
    title = value;
    notifyListeners();
  }
}

Kategorien

Abhängigkeiten

Abhängigkeiten 2 Einträge

Quell-Repository

Projekte, die dieses Paket verwenden