Pakete, Repositories und App-Kategorien suchen

Paketdetailsv1.0.8

dash

Die Dash-Bibliothek ist dafür verantwortlich, ein Service-Locator-Muster anzubieten, das sich um die Bereitstellung und Bereinigung von Blocs kümmert.

AndroidiOSWebmacOSWindowsLinux
30-Tage-Downloads
182
Likes
10
Pub-Punkte
160

Paket installieren

flutter pub add dash

Paketübersicht

Aus öffentlichen Paketdaten erstellte Orientierung.

Dash ist ein leichtgewichtiger Service-Locator für Flutter, der die Abhängigkeitsinjektion vereinfacht, indem er den Lebenszyklus von Blocs verwaltet und eine korrekte Instanziierung sowie Bereinigung sicherstellt. Es bietet eine saubere Möglichkeit, Abhängigkeiten zu registrieren und abzurufen, insbesondere geeignet für Zustandsverwaltung mit Bloc-Mustern. Die Bibliothek unterstützt alle wichtigen Plattformen und lässt sich nahtlos in bestehende Flutter-Projekte integrieren. Ihr Fokus auf Lebenszyklus-Bewusstsein hilft, Speicherlecks zu vermeiden und die App-Leistung zu verbessern.

Anwendungsfälle

  • Verwalten des Bloc-Lebenszyklus in Flutter-Apps
  • Abbildung von Abhängigkeiten vereinfachen
  • Ersetzen der manuellen Erstellung und Bereinigung von Bloc
  • Integration mit Zustandsverwaltungs-Mustern
  • Testeinstellung vereinfachen
  • Modulare App-Architektur aktivieren

Hauptmerkmale

  • Automatischer Bloc-Abbau
  • Einfache Registrierung und Abruf
  • Plattformunabhängiger Entwurf
  • Eingebautes Lebenszyklus-Management
  • Minimales Boilerplate
  • Unterstützt verschachtelte Abhängigkeiten

Geeignet für

  • Flutter-Entwickler, die das Bloc-Muster verwenden
  • Apps, die eine strukturierte Abhängigkeitsverwaltung erfordern
  • Teams, die nach leichten DI-Lösungen suchen
  • Projekte mit Fokus auf saubere Zustandsverwaltung
  • Entwickler, die eine automatische Ressourcenbereinigung wünschen

Hinweise

  • Beschränkt auf Bloc-fokussierte Anwendungsfälle
  • Erfordert Verständnis des Service-Locator-Musters
  • Nicht geeignet für komplexe DI-Anforderungen
  • Für erweiterte Szenarien könnte eine zusätzliche Einrichtung erforderlich sein
  • Weniger funktionsreich als vollständige DI-Frameworks

Original-README

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

Dash

Logo

Dash is a simple but efficient library that helps provide BloCs without headaches.

IMPORTANT: Dart2 is required to use this package.

Installation

  • Add dash to your pubspec.yaml under the dependencies section:
dependencies:
  dash: ^latest_version
  • Add build_runner and dash_generator to your pubspec.yaml under the dev_dependencies section:
dev_dependencies:
  build_runner: ^2.0.3
  dash_generator: ^latest_version

Usage

1 - Create a provider class that will gather BlocProvider annotation:

IMPORTANT: Do not forget to add: part 'provider.g.dart';.

import 'package:dash/dash.dart';

part 'provider.g.dart';

@BlocProvider.register(MySampleBloc)
@BlocProvider.register(MyOtherBloc)
abstract class Provider {}

2 - Extend BLoCs from Bloc. It will allow you to override dispose method.

IMPORTANT: All blocs must have an instance() function that returns the instance of the bloc as below.

class MySampleBloc extends Bloc {

  @override
  dispose() {
    //close all streams
  }

  static Bloc instance() => MySampleBloc();
  
}

class MyOtherBloc extends Bloc {

  @override
  dispose() {
    //close all streams
  }

  static Bloc instance() => MyOtherBloc();
}

3 - Run build_runner, it will generate the provider.g.dart class that you added as part on your provider class.

On project directory run in terminal:

pub run build_runner build

For flutter:

flutter packages pub run build_runner build

Note: If you encounter a conflict error, please add the --delete-conflicting-outputs argument to your command:

flutter packages pub run build_runner build --delete-conflicting-outputs

4 - Finally you can get your BLoC instance from anywhere, for example:

  @override
  Widget build(BuildContext context) {
    final _bloc = $Provider.of<MyOtherBloc>();

    return Container();
  }

  @override
  void dispose() {
    $Provider.dispose<MyOtherBloc>();
    super.dispose();
  }

Changelog

Please see the Changelog page to know what's recently changed.

Kategorien

Quell-Repository

Projekte, die dieses Paket verwenden

Noch keine Daten verfügbar.