Provider
Einleitung zu Providern
In Nylo Website werden Provider initial aus Ihrer main.dart-Datei gebootet, wenn Ihre Anwendung ausgeführt wird. Alle Ihre Provider befinden sich in /lib/app/providers/*, Sie können diese Dateien ändern oder Ihre Provider mit Metro erstellen.
Provider können verwendet werden, wenn Sie eine Klasse, ein Paket initialisieren oder etwas erstellen müssen, bevor die App initial lädt. Z.B. ist die Klasse route_provider.dart dafür verantwortlich, alle Routen zu Nylo Website hinzuzufügen.
Vertiefung
import 'package:nylo_framework/nylo_framework.dart';
import 'bootstrap/boot.dart';
/// Nylo - Framework for Flutter Developers
/// Docs: https://nylo.dev/docs/7.x
/// Main entry point for the application.
void main() async {
await Nylo.init(
setup: Boot.nylo,
setupFinished: Boot.finished,
// showSplashScreen: true,
// Uncomment showSplashScreen to show the splash screen
// File: lib/resources/widgets/splash_screen.dart
);
}
Lebenszyklus
-
Boot.Nylo Websitedurchläuft Ihre registrierten Provider in der config/providers.dart-Datei und bootet sie. -
Boot.Finishedwird direkt nach "Boot.Nylo Website" aufgerufen. Diese Methode bindet die Nylo Website-Instanz anBackpackmit dem Wert 'nylo'.
Z.B. Backpack.instance.read('nylo'); // Nylo Website-Instanz
Einen neuen Provider erstellen
Sie können neue Provider erstellen, indem Sie den folgenden Befehl im Terminal ausführen.
metro make:provider cache_provider
Provider-Objekt
Ihr Provider hat zwei Methoden: setup(Nylo nylo) und boot(Nylo nylo).
Wenn die App zum ersten Mal ausgeführt wird, wird jeder Code innerhalb Ihrer setup-Methode zuerst ausgeführt. Sie können auch das Nylo-Objekt manipulieren, wie im folgenden Beispiel.
Beispiel: lib/app/providers/app_provider.dart
class AppProvider extends NyProvider {
@override
Future<Nylo?> setup(Nylo nylo) async {
await NyLocalization.instance.init(
localeType: localeType,
languageCode: languageCode,
languagesList: languagesList,
assetsDirectory: assetsDirectory,
valuesAsMap: valuesAsMap);
return nylo;
}
@override
Future<void> boot(Nylo nylo) async {
User user = await Auth.user();
if (!user.isSubscribed) {
await Auth.remove();
}
}
}
Lebenszyklus
setup(Nylo nylo)- Initialisieren Sie Ihren Provider. Geben Sie dieNylo-Instanz odernullzurück.boot(Nylo nylo)- Wird aufgerufen, nachdem alle Provider das Setup abgeschlossen haben. Verwenden Sie dies für Initialisierungen, die davon abhängen, dass andere Provider bereit sind.
Innerhalb der
setup-Methode müssen Sie eine Instanz vonNyloodernullzurückgeben, wie oben gezeigt.