Advanced

Providers

प्रोवाइडर्स का परिचय

Nylo Website में, प्रोवाइडर्स आपके एप्लिकेशन चलने पर आपकी main.dart फ़ाइल से प्रारंभ में बूट किए जाते हैं। आपके सभी प्रोवाइडर्स /lib/app/providers/* में रहते हैं, आप इन फ़ाइलों को संशोधित कर सकते हैं या Metro का उपयोग करके अपने प्रोवाइडर्स बना सकते हैं।

प्रोवाइडर्स का उपयोग तब किया जा सकता है जब आपको ऐप के शुरू में लोड होने से पहले किसी क्लास, पैकेज को इनिशियलाइज़ करने या कुछ बनाने की आवश्यकता हो। उदाहरण के लिए, route_provider.dart क्लास Nylo Website में सभी रूट्स जोड़ने के लिए ज़िम्मेदार है।

गहन अध्ययन

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
  );
}

जीवनचक्र

  • Boot.Nylo Website आपकी config/providers.dart फ़ाइल के अंदर पंजीकृत प्रोवाइडर्स के माध्यम से लूप करेगा और उन्हें बूट करेगा।

  • Boot.Finished "Boot.Nylo Website" समाप्त होने के तुरंत बाद कॉल होता है, यह मेथड Backpack में 'nylo' वैल्यू के साथ Nylo Website इंस्टेंस को बाइंड करेगा।

उदा. Backpack.instance.read('nylo'); // Nylo Website instance

नया प्रोवाइडर बनाएँ

आप टर्मिनल में नीचे दिए गए कमांड को चलाकर नए प्रोवाइडर्स बना सकते हैं।

metro make:provider cache_provider

प्रोवाइडर ऑब्जेक्ट

आपके प्रोवाइडर में दो मेथड्स होंगे, setup(Nylo nylo) और boot(Nylo nylo)

जब ऐप पहली बार चलता है, तो आपके setup मेथड के अंदर कोई भी कोड पहले निष्पादित होगा। आप नीचे दिए गए उदाहरण की तरह Nylo ऑब्जेक्ट को भी मैनिपुलेट कर सकते हैं।

उदाहरण: 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();
    }
  }
}

जीवनचक्र

  1. setup(Nylo nylo) - अपने प्रोवाइडर को इनिशियलाइज़ करें। Nylo इंस्टेंस या null लौटाएँ।
  2. boot(Nylo nylo) - सभी प्रोवाइडर्स का सेटअप पूरा होने के बाद कॉल होता है। इसका उपयोग उन इनिशियलाइज़ेशन के लिए करें जो अन्य प्रोवाइडर्स के तैयार होने पर निर्भर करते हैं।

setup मेथड के अंदर, आपको ऊपर की तरह Nylo का एक इंस्टेंस या null लौटाना होगा।