Junior
Do czego służy Provider w Flutterze?
sobes.tech AI
Odpowiedź od AI
Provider jest używany do zarządzania stanem w aplikacjach Flutter. Ułatwia dostęp do danych i ich rozpowszechnianie w drzewie widżetów. Provider opiera się na koncepcji dziedziczonych widżetów (InheritedWidget), ale oferuje bardziej wygodne i lekkie API.
Główne zalety:
- Łatwość użycia: Intuicyjne API do tworzenia, dostarczania i konsumowania danych.
- Wydajność: Dzięki InheritedWidget, tylko widżety bezpośrednio zależne od danych są przebudowywane przy ich zmianie.
- Testowalność: Łatwo wymieniać dostawców podczas testów jednostkowych.
- Organizacja kodu: Pomaga oddzielić logikę biznesową od UI.
- Skalowalność: Nadaje się zarówno do małych, jak i dużych projektów.
Przypadki użycia:
- Dostęp do danych użytkownika (np. autoryzacja).
- Ogólne ustawienia aplikacji.
- Stan koszyka.
- Dane z sieci lub bazy danych.
Przykład użycia ChangeNotifierProvider:
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
// Klasa śledząca zmiany
class Counter with ChangeNotifier {
int _count = 0;
int get count => _count;
void increment() {
_count++;
notifyListeners(); // Powiadamiamy słuchaczy o zmianie
}
}
class MyWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
return ChangeNotifierProvider( // Dostarcza instancję Counter
create: (context) => Counter(),
child: Consumer<Counter>( // Konsumuje instancję Counter
builder: (context, counter, child) {
return Text('Count: ${counter.count}');
},
),
);
}
}