Junior
K čemu slouží Provider ve Flutteru?
sobes.tech AI
Odpověď od AI
Provider se používá k řízení stavu v aplikacích Flutter. Umožňuje snadný přístup k datům a jejich šíření stromem widgetů. Provider je založen na konceptu děděných widgetů (InheritedWidget), ale nabízí pohodlnější a lehčí API.
Hlavní výhody:
- Jednoduchost použití: Intuitivní API pro vytváření, poskytování a konzumaci dat.
- Efektivita: Díky InheritedWidget jsou pouze widgety, které přímo závisí na datech, přestavovány při jejich změně.
- Testovatelnost: Snadná výměna poskytovatelů při jednotkových testech.
- Organizace kódu: Pomáhá oddělit obchodní logiku od UI.
- Škálovatelnost: Vhodné jak pro malé, tak velké projekty.
Případy použití:
- Přístup k uživatelským datům (například autorizace).
- Obecné nastavení aplikace.
- Stav košíku.
- Data ze sítě nebo databáze.
Příklad použití ChangeNotifierProvider:
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
// Třída, která sleduje změny
class Counter with ChangeNotifier {
int _count = 0;
int get count => _count;
void increment() {
_count++;
notifyListeners(); // Oznámí posluchačům o změně
}
}
class MyWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
return ChangeNotifierProvider( // Poskytuje instanci Counter
create: (context) => Counter(),
child: Consumer<Counter>( // Spotřebovává instanci Counter
builder: (context, counter, child) {
return Text('Count: ${counter.count}');
},
),
);
}
}