დააინსტალირეთ miniriverpod რამდენიმე წუთში.

დააყენეთ SDK შეზღუდვები, დაამატეთ პაკეტი და დაადასტურეთ, რომ ProviderScope + WidgetRef.watch სწორად არის დაკავშირებული.

მოთხოვნები

გამოიყენეთ იგივე შეზღუდვები, რაც პაკეტს აქვს, რათა თავიდან აიცილოთ analyzer-სა და runtime-ს შორის შეუსაბამობა.

Dart SDK

>=3.10.0 <4.0.0

Flutter

რჩევა

თუ თქვენი app Dart 3.10-ზე ქვემოთაა დაბლოკილი, ჯერ გაზარდეთ SDK შეზღუდვები და შემდეგ გაუშვით flutter pub get.

ინსტალაცია

უპირატესობა მიანიჭეთ CLI ინსტალაციას, შემდეგ კი ვერსია პაკეტის changelog-ს შეუხამეთ.

CLI

pubspec.yaml

# Add to your dependencies
dependencies:
  miniriverpod: ^0.0.2

პირველი ნაბიჯები

შემოახვიეთ თქვენი app ProviderScope-ით, განსაზღვრეთ Provider და ConsumerWidget-იდან გამოიტანეთ state.

import 'package:flutter/widgets.dart';
import 'package:miniriverpod/miniriverpod.dart';

final counterProvider = Provider<int>((ref) => 0);

void main() {
  runApp(const ProviderScope(child: CounterApp()));
}

class CounterApp extends ConsumerWidget {
  const CounterApp({super.key});

  @override
  Widget build(BuildContext context, WidgetRef ref) {
    final count = ref.watch(counterProvider);
    return Directionality(
      textDirection: TextDirection.ltr,
      child: Center(child: Text('$count')),
    );
  }
}
გამოიყენეთ Provider((ref) => ...) სინქრონული მნიშვნელობებისთვის.
გამოიყენეთ AsyncProvider<T>((ref) async => ...) Future-სთვის და ref.emit(stream) Stream-ისთვის.
mutations-ის განხორციელებისას გადადით ref.invoke(provider.method())-ზე.

შემდეგი ნაბიჯები

ძირითადი კონცეფციები

გაიგეთ არგუმენტებზე დაფუძნებული provider-ის იდენტობა, Scope-ის ინექცია და codegen-ის გარეშე დიზაინის არჩევანი.

ძირითადი კონცეფციების გახსნა

Providers და წაკითხვები

ისწავლეთ watch/read/listen ქცევა და AsyncProvider refresh-ის შაბლონები.

Providers-ის გახსნა

API ცნობარი

სწრაფად მოძებნეთ მეთოდები, როგორიცაა invalidate, refreshValue, keepAlive და invoke.

API ცნობარის გახსნა