金色时刻 · 15:48
让好资源,触手可及
AGENT SKILL

riverpod-state-management

riverpod-state-management 是面向软件开发的 Agent Skill,来自 HoangNguyen0403/agent-skills-standard。查看技能说明、操作步骤与使用约定,并通过原项目了解详细用法。

SKILL.md

下载 MD ↓

name: Flutter Riverpod State Management description: Reactive state management using Riverpod 2.0 with code generation. metadata: labels: [flutter, state-management, riverpod, dependency-injection, reactive] triggers: files: ['_provider.dart', '_notifier.dart'] keywords: [riverpod, ProviderScope, ConsumerWidget, Notifier, AsyncValue, ref.watch, @riverpod]


Riverpod State Management

Priority: P0 (CRITICAL)

Type-safe, compile-time safe reactive state management using riverpod and riverpod_generator.

Structure

lib/
├── providers/ # Global providers and services
└── features/user/
    ├── providers/ # Feature-specific providers
    └── models/    # @freezed domain models

Implementation Guidelines

  • Generator First: Use @riverpod annotations and riverpod_generator. Avoid manual Provider definitions.
  • Immutability: Maintain immutable states. Use Freezed for all state models.
  • Provider Methods:
  • ref.watch(): Use inside build() to rebuild on changes.
  • ref.listen(): Use for side-effects (navigation, dialogs).
  • ref.read(): Use ONLY in callbacks (onPressed).
  • Asynchronous Data: Use AsyncNotifier for complex async logic. Access data via .when() or AsyncValue pattern-matching.
  • Architecture: Enforce 3-layer separation (Data, Domain, Presentation).
  • Linting: Enable riverpod_lint and custom_lint for dependency cycle detection.

Anti-Patterns

  • Building Inside Providers: Don't perform side-effects inside provider initialization.
  • Context Access: Never pass BuildContext into a Notifier/Provider.
  • Dynamic Providers: Avoid local provider instantiation; keep them global.

Related Topics

layer-based-clean-architecture | dependency-injection | testing

来源:HoangNguyen0403/agent-skills-standard · MIT 许可 · 许可原文 · MD 为来源页保存的历史版本