Sobes.tech
Junior

Milleks kasutatakse Providerit Flutteris?

sobes.tech AI

Vastus AI-lt

„Provider“ kasutatakse Flutter rakendustes oleku haldamiseks. See lihtsustab andmetele juurdepääsu ja nende levitamist vidinapuu kaudu. „Provider“ põhineb pärilike vidinate (InheritedWidget) kontseptsioonil, kuid pakub mugavamat ja kerget API-d.

Peamised eelised:

  • Lihtne kasutada: intuitiivne API andmete loomise, pakkumise ja kasutamise jaoks.
  • Tõhusus: tänu InheritedWidget'ile uuendatakse ainult need vidinad, mis otseselt sõltuvad andmetest, nende muutumisel.
  • Testitavus: lihtne asendada pakkujaid moodulitest testimisel.
  • Koodi korraldus: aitab eraldada äriloogika ja kasutajaliidese.
  • Skaleeritavus: sobib nii väikestele kui ka suurtele projektidele.

Kasutusjuhtumid:

  • Kasutaja andmetele juurdepääs (näiteks autoriseerimine).
  • Rakenduse üldseaded.
  • Ostukorvi oleku haldamine.
  • Andmed võrgust või andmebaasist.

Näide kasutades ChangeNotifierProvider:

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

// Klass, mis jälgib muudatusi
class Counter with ChangeNotifier {
  int _count = 0;

  int get count => _count;

  void increment() {
    _count++;
    notifyListeners(); // Annab teada kuulajatele muudatustest
  }
}

class MyWidget extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return ChangeNotifierProvider( // Pakub Counter eksemplari
      create: (context) => Counter(),
      child: Consumer<Counter>( // Kasutab Counter eksemplari
        builder: (context, counter, child) {
          return Text('Loendur: ${counter.count}');
        },
      ),
    );
  }
}