Provider
Introduzione ai Provider
In Nylo Website, i provider vengono avviati inizialmente dal tuo file main.dart quando l'applicazione viene eseguita. Tutti i tuoi provider risiedono in /lib/app/providers/*, puoi modificare questi file o creare i tuoi provider usando Metro.
I provider possono essere usati quando hai bisogno di inizializzare una classe, un pacchetto o creare qualcosa prima che l'app venga caricata inizialmente. Ad esempio, la classe route_provider.dart e' responsabile dell'aggiunta di tutte le rotte a Nylo Website.
Approfondimento
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
);
}
Ciclo di Vita
-
Boot.Nylo Websiteitererara' attraverso i tuoi provider registrati nel file config/providers.dart e li avviera'. -
Boot.Finishedviene chiamato subito dopo che "Boot.Nylo Website" e' terminato, questo metodo leghera' l'istanza di Nylo Website aBackpackcon il valore 'nylo'.
Es. Backpack.instance.read('nylo'); // istanza di Nylo Website
Creare un nuovo Provider
Puoi creare nuovi provider eseguendo il comando seguente nel terminale.
metro make:provider cache_provider
Oggetto Provider
Il tuo provider avra' due metodi, setup(Nylo nylo) e boot(Nylo nylo).
Quando l'app viene eseguita per la prima volta, qualsiasi codice all'interno del tuo metodo setup verra' eseguito per primo. Puoi anche manipolare l'oggetto Nylo come nell'esempio qui sotto.
Esempio: 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();
}
}
}
Ciclo di Vita
setup(Nylo nylo)- Inizializza il tuo provider. Restituisci l'istanzaNyloonull.boot(Nylo nylo)- Chiamato dopo che tutti i provider hanno completato il setup. Usa questo per l'inizializzazione che dipende dalla prontezza di altri provider.
All'interno del metodo
setup, devi restituire un'istanza diNyloonullcome nell'esempio sopra.