Provider
Pengantar Provider
Di Nylo Website, provider di-boot pertama kali dari file main.dart saat aplikasi Anda berjalan. Semua provider Anda berada di /lib/app/providers/*, Anda dapat memodifikasi file-file ini atau membuat provider Anda menggunakan Metro.
Provider dapat digunakan ketika Anda perlu menginisialisasi class, package, atau membuat sesuatu sebelum aplikasi dimuat pertama kali. Misalnya, class route_provider.dart bertanggung jawab untuk menambahkan semua route ke Nylo Website.
Penjelasan mendalam
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
);
}
Siklus Hidup
-
Boot.Nylo Websiteakan melakukan loop melalui provider yang terdaftar di dalam file config/providers.dart dan mem-boot-nya. -
Boot.Finisheddipanggil tepat setelah "Boot.Nylo Website" selesai, metode ini akan mengikat instance Nylo Website keBackpackdengan nilai 'nylo'.
Contoh: Backpack.instance.read('nylo'); // instance Nylo Website
Membuat Provider Baru
Anda dapat membuat provider baru dengan menjalankan perintah berikut di terminal.
metro make:provider cache_provider
Objek Provider
Provider Anda akan memiliki dua metode, setup(Nylo nylo) dan boot(Nylo nylo).
Saat aplikasi berjalan untuk pertama kali, kode apa pun di dalam metode setup Anda akan dieksekusi terlebih dahulu. Anda juga dapat memanipulasi objek Nylo seperti pada contoh di bawah ini.
Contoh: 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();
}
}
}
Siklus Hidup
setup(Nylo nylo)- Inisialisasi provider Anda. Kembalikan instanceNyloataunull.boot(Nylo nylo)- Dipanggil setelah semua provider selesai setup. Gunakan ini untuk inisialisasi yang bergantung pada provider lain yang sudah siap.
Di dalam metode
setup, Anda harus mengembalikan instanceNyloataunullseperti di atas.