Sobes.tech
Junior

Na čo slúži Provider vo Flutteri?

sobes.tech AI

Odpoveď od AI

Provider sa používa na správu stavu v Flutter aplikáciách. Uľahčuje prístup k údajom a ich šírenie stromom widgetov. Provider je založený na koncepte dediaceho widgetu (InheritedWidget), ale ponúka pohodlnejšie a ľahšie API.

Hlavné výhody:

  • Jednoduchosť použitia: Intuitívne API na vytváranie, poskytovanie a konzumáciu údajov.
  • Efektívnosť: Vďaka InheritedWidget sa iba widgety, ktoré priamo závisia od údajov, prebudujú pri ich zmene.
  • Testovateľnosť: Je ľahké nahradiť poskytovateľov počas jednotkových testov.
  • Organizácia kódu: Pomáha oddeliť biznis logiku od UI.
  • Škálovateľnosť: Vhodné pre malé aj veľké projekty.

Príklady použitia:

  • Prístup k používateľským údajom (napríklad, overenie).
  • Všeobecné nastavenia aplikácie.
  • Stav košíka.
  • Dáta zo siete alebo databázy.

Príklad použitia ChangeNotifierProvider:

import 'package:flutter/material.dart';
import 'package:provider/provider.dart';

// Trieda, ktorá sleduje zmeny
class Counter with ChangeNotifier {
  int _count = 0;

  int get count => _count;

  void increment() {
    _count++;
    notifyListeners(); // Oznámi poslucháčom o zmene
  }
}

class MyWidget extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return ChangeNotifierProvider( // Poskytuje inštanciu Counter
      create: (context) => Counter(),
      child: Consumer<Counter>( // Konzumuje inštanciu Counter
        builder: (context, counter, child) {
          return Text('Count: ${counter.count}');
        },
      ),
    );
  }
}