Sobes.tech
Junior

Kam skirta yra Provider Flutter?

sobes.tech AI

Atsakymas iš AI

„Provider“ naudojamas valdyti būseną Flutter programose. Jis supaprastina duomenų prieigą ir jų platinimą per widget medį. „Provider“ pagrįstas paveldimų widgetų (InheritedWidget) koncepcija, tačiau siūlo patogesnį ir lengvesnį API.

Pagrindiniai privalumai:

  • Paprastumas naudoti: intuityvus API duomenų kūrimui, teikimui ir naudojimui.
  • Efektyvumas: Dėl InheritedWidget, tik tie widgetai, kurie tiesiogiai priklauso nuo duomenų, yra perstatomi jų pasikeitus.
  • Testuojamumas: Lengva pakeisti teikėjus modulinio testavimo metu.
  • Kodo organizavimas: Padeda atskirti verslo logiką nuo UI.
  • Mastelio keitimas: tinka tiek mažiems, tiek dideliems projektams.

Naudojimo atvejai:

  • Vartotojo duomenų prieiga (pvz., autorizacija).
  • Bendros programos nuostatos.
  • Pirkinių krepšelio būsenos valdymas.
  • Duomenys iš tinklo ar duomenų bazės.

Pavyzdys naudojant ChangeNotifierProvider:

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

// Klasė, stebinti pakeitimus
class Counter with ChangeNotifier {
  int _count = 0;

  int get count => _count;

  void increment() {
    _count++;
    notifyListeners(); // Pranešame klausytojams apie pakeitimą
  }
}

class MyWidget extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return ChangeNotifierProvider( // Teikiame Counter instanciją
      create: (context) => Counter(),
      child: Consumer<Counter>( // Naudojame Counter instanciją
        builder: (context, counter, child) {
          return Text('Skaitiklis: ${counter.count}');
        },
      ),
    );
  }
}