Buscar pacotes, repositórios e categorias de apps

Detalhes do pacotev0.10.0

flutter_state_management

Uma coleção de classes auxiliares para tornar o uso do ChangeNotifier mais fácil para gerenciamento de estado

AndroidiOSWebmacOSWindowsLinux
Downloads em 30 dias
296
Curtidas
4
Pontos Pub
160

Instalar pacote

flutter pub add flutter_state_management

Visão geral do pacote

Orientação gerada a partir de informações públicas. Apenas para referência.

Um pacote leve que simplifica a gestão de estado no Flutter ao fornecer classes auxiliares para trabalhar com ChangeNotifier. Reduz o código repetitivo e aumenta a produtividade do desenvolvedor ao gerenciar o estado do aplicativo. Projetado para integrar-se perfeitamente com o framework reativo do Flutter, suporta todas as principais plataformas, incluindo Android, iOS, Web, macOS, Windows e Linux. O pacote é ideal para desenvolvedores que buscam uma abordagem mínima e limpa para o gerenciamento de estado, sem a complexidade de soluções mais elaboradas.

Casos de uso

  • Atualizações de estado simples em pequenos aplicativos
  • Reduzindo código repetitivo em implementações de ChangeNotifier
  • Simplificando a lógica de estado em formulários e componentes da interface
  • Gerenciando dados compartilhados entre múltiplos widgets
  • Alternativa leve ao BLoC ou Provider

Principais recursos

  • Classes auxiliares para ChangeNotifier
  • Configuração e integração mínimas
  • Suporte multiplataforma
  • Estrutura de código limpa e legível
  • Utilitários embutidos para padrões comuns de estado

Indicado para

  • Desenvolvedores iniciantes do Flutter
  • Projetos pequenos a médios
  • Aplicativos que precisam de gerenciamento básico de estado
  • Desenvolvedores que preferem simplicidade em vez de complexidade
  • Equipes que desejam prototipagem rápida

Considerações

  • Não adequado para fluxos de estado complexos
  • Limitado em comparação com bibliotecas de gerenciamento de estado completas
  • Pode exigir ferramentas adicionais para aplicativos em grande escala
  • Melhor usado com outros métodos de gerenciamento de estado ao escalar
  • Não inclui persistência embutida ou tratamento assíncrono

README original

Snapshot do README original do repositório-fonte vinculado. Consulte o repositório para o conteúdo mais recente.

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());
  }
}

Categorias

Repositório-fonte

Projetos que usam este pacote

Ainda não há dados.