幾分鐘內安裝 miniriverpod。

設定 SDK 限制、加入套件,並確認 ProviderScope + WidgetRef.watch 已正確連接。

需求

請使用與套件相同的限制,以避免 analyzer 與 runtime 不一致。

Dart SDK

>=3.10.0 <4.0.0

Flutter

提示

如果你的應用程式鎖定在 Dart 3.10 以下,請先提高 SDK 限制,再執行 flutter pub get。

安裝

優先使用 CLI 安裝,接著讓版本與套件 changelog 保持一致。

CLI

pubspec.yaml

# Add to dependencies
dependencies:
  miniriverpod: ^0.0.2

第一步

將你的應用程式包在 ProviderScope 中,定義一個 Provider,並從 ConsumerWidget 渲染狀態。

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) => ...)。
Future 請使用 AsyncProvider<T>((ref) async => ...),Stream 請使用 ref.emit(stream)。
實作變更時,切換為 ref.invoke(provider.method())。

下一步

核心概念

了解基於 args 的 provider 識別、Scope 注入,以及不使用 codegen 的設計選擇。

開啟核心概念

Providers 與讀取

學習 watch/read/listen 行為與 AsyncProvider 重新整理模式。

開啟 Providers

API 參考

快速查找 invalidate、refreshValue、keepAlive 與 invoke 等方法。

開啟 API 參考