provider

Featured

Use when setting up providers, consuming state, optimizing rebuilds, using ProxyProvider, or migrating from deprecated providers (Provider package).

Code & Development 619 stars 60 forks Updated today MIT

Install

View on GitHub

Quality Score: 95/100

Stars 20%
93
Recency 20%
100
Frontmatter 20%
70
Documentation 15%
100
Issue Health 10%
50
License 10%
100
Description 5%
100

Skill Content

# Provider Skill This skill defines how to correctly use the `provider` package in Flutter applications. --- ## 1. Provider Types | Provider | Use for | |---|---| | `Provider` | Exposing any immutable value | | `ChangeNotifierProvider` | Mutable state with `ChangeNotifier` | | `FutureProvider` | Exposing a `Future` result | | `StreamProvider` | Exposing a `Stream` | | `ProxyProvider` / `ChangeNotifierProxyProvider` | Objects that depend on other providers | --- ## 2. Setup ```dart MultiProvider( providers: [ Provider<Something>(create: (_) => Something()), ChangeNotifierProvider(create: (_) => MyNotifier()), FutureProvider<String>(create: (_) => fetchData(), initialData: ''), ], child: MyApp(), ) ``` - Use `MultiProvider` to group multiple providers and avoid deeply nested trees. - `ChangeNotifierProvider` **automatically disposes** the model when it is no longer needed. - **Never** create a provider's object from variables that can change over time — the object won't update when the variable changes. Use `ProxyProvider` instead. - If you have 150+ providers, consider mounting them over time (e.g., during a splash screen) rather than all at once to avoid `StackOverflowError`. --- ## 3. Consuming State Always specify the **generic type** for type safety: ```dart // Listen and rebuild on change — only valid inside build() or a Provider's update method final count = context.watch<MyModel>().count; // Access without listening — use in callbacks, not...

Details

Author
evanca
Repository
evanca/flutter-ai-rules
Created
1 years ago
Last Updated
today
Language
Shell
License
MIT

Similar Skills

Semantically similar based on skill content — not just same category