패키지, 저장소 및 앱 카테고리 검색

패키지 상세v0.10.0

flutter_state_management

상태 관리를 위한 ChangeNotifier 사용을 더 쉽게 만드는 도우미 클래스 모음

AndroidiOSWebmacOSWindowsLinux
30일 다운로드
296
좋아요
4
Pub 점수
160

패키지 설치

flutter pub add flutter_state_management

패키지 개요

공개 정보를 바탕으로 생성한 선택 가이드입니다.

ChangeNotifier 작업을 위한 보조 클래스를 제공함으로써 Flutter에서 상태 관리를 단순화하는 가벼운 패키지입니다. 반복적인 코드를 줄이고 앱 상태 관리 시 개발자의 생산성을 향상시킵니다. Flutter의 반응형 프레임워크와 원활하게 통합되도록 설계되었으며, Android, iOS, Web, macOS, Windows, Linux 등 모든 주요 플랫폼을 지원합니다. 더 큰 상태 관리 솔루션의 복잡성 없이 최소하고 깔끔한 상태 처리 방식을 원하는 개발자에게 이상적입니다.

사용 사례

  • 작은 앱에서의 간단한 상태 업데이트
  • ChangeNotifier 구현에서 반복 코드 줄이기
  • 양식 및 UI 컴포넌트에서 상태 로직 간소화
  • 여러 위젯 간에 공유 데이터 관리
  • BLoC 또는 Provider의 가벼운 대안

주요 기능

  • ChangeNotifier를 위한 보조 클래스
  • 최소한의 설정 및 통합
  • 크로스 플랫폼 지원
  • 깨끗하고 가독성 높은 코드 구조
  • 일반적인 상태 패턴을 위한 내장 유틸리티

적합한 대상

  • 초보자 플러터 개발자
  • 소규모에서 중규모 프로젝트
  • 기본 상태 관리가 필요한 앱
  • 복잡성보다는 단순성을 선호하는 개발자
  • 빠른 프로토타이핑을 원하는 팀

고려 사항

  • 복잡한 상태 흐름에 적합하지 않습니다
  • 기능이 풍부한 상태 관리 라이브러리에 비해 제한됨
  • 대규모 앱의 경우 추가 도구가 필요할 수 있습니다
  • 확장할 때 다른 상태 관리 접근 방식과 함께 사용하는 것이 가장 좋습니다
  • 내장된 지속성 또는 비동기 처리를 포함하지 않음

원본 README

연결된 소스 저장소의 README 원문 스냅샷입니다. 최신 내용은 저장소에서 확인하세요.

Flutter State Management

Just a couple of utility classes to make it easier to use Flutter framework's built-in ChangeNotifier and Listenable for state management.

Features

  • No learning curve if you already know Flutter
  • Simple package based on ChangeNotifier (No bloatware)

Usage

Create your model class

class Counter extends StateNotifier<int, String> {
  Counter() : super(const Active(data: 0));

  void increment() async {
    setWaiting();

    await Future.delayed(const Duration(seconds: 2));

    if (data > 20) {
     setFailed('greater than 20');
    } else {
      setActive(data + 1);
    }
  }
}

Or if you want the state to persist across restarts

class Counter extends PersistedStateNotifier<int, String> {
  Counter() : super(IsarKeyValue(), startState: 0);

  void increment() async {
    setWaiting();

    await Future.delayed(const Duration(seconds: 2));

    if (data > 20) {
      setFailed('greater than 20');
    } else {
      setActive(data + 1);
    }
  }
}

Handle State Changes in UI

To only rebuild specific parts:
  1. Use ValueListenableBuilder from the Flutter framework:
final counter = Counter();

ValueListenableBuilder(
  valueListenable: counter,
  child: Text()
  builder: (context, state, child) => // return updated UI here (can also use counter.builderArg here)
  child: const Text('Hello'),
  ),
);

You can also use builderArg helper:

builder: counter.builderArg(
  onActive: ,
  onWaiting: ,
  onNone: ,
  onFailure: ,
),
  1. Or use StateNotifierBuilder that comes with this package and is more user friendly:
final counter = Counter();

counter.builder(
  onActive: (context, data) => Text(data.toString()),
),


\

To rebuild whole widget

Convert your existing StatelessWidget to RStatelessWidget, and StatefulWidget to RStatefulWidget and and just watch the model inside the build method:

class CounterText extends RStatelessWidget {
  @override
  Widget build(BuildContext context) {
    counter.watch(context); // call watch inside the build method (do not use any if) 
    return Text(data.toString());
  }
}

카테고리

소스 저장소

이 패키지를 사용하는 프로젝트

아직 데이터가 없습니다.